ltrominoes.c: In function 'advance':
ltrominoes.c:9:22: warning: suggest parentheses around '+' inside '<<' [-Wparentheses]
9 | static char dq[N][1 << N + 1];
| ^~
ltrominoes.c:13:28: warning: suggest parentheses around '+' inside '<<' [-Wparentheses]
13 | memset(dq[i], 0, (1 << n + 1) * sizeof *dq[i]);
| ~~^~~
ltrominoes.c:23:26: warning: suggest parentheses around '+' inside '<<' [-Wparentheses]
23 | for (b = 0; b < 1 << n + 1; b++)
| ~~^~~
ltrominoes.c:25:31: warning: suggest parentheses around '+' inside '<<' [-Wparentheses]
25 | int b_ = b << 1 & (1 << n + 1) - 1;
| ~~^~~
ltrominoes.c:25:36: warning: suggest parentheses around '-' in operand of '&' [-Wparentheses]
25 | int b_ = b << 1 & (1 << n + 1) - 1;
| ~~~~~~~~~~~~~^~~
ltrominoes.c:27:21: warning: suggest parentheses around '+' inside '<<' [-Wparentheses]
27 | if ((c & 1 << i + 1) != 0)
| ~~^~~
ltrominoes.c:31:43: warning: suggest parentheses around '-' inside '<<' [-Wparentheses]
31 | if ((b & 1 << 0) == 0 && (b & 1 << n - 1) == 0)
| ~~^~~
ltrominoes.c:33:35: warning: suggest parentheses around '-' inside '<<' [-Wparentheses]
33 | if (i + 2 < n && (b & 1 << n - 1) == 0 && (b & 1 << n - 2) == 0)
| ~~^~~
ltrominoes.c:33:60: warning: suggest parentheses around '-' inside '<<' [-Wparentheses]
33 | if (i + 2 < n && (b & 1 << n - 1) == 0 && (b & 1 << n - 2) == 0)
| ~~^~~
ltrominoes.c:34:38: warning: suggest parentheses around '-' inside '<<' [-Wparentheses]
34 | dq[i + 1][b_ | 1 << 0 | 1 << n - 1 | 1 << n] = 1;
| ~~^~~
ltrominoes.c:38:22: warning: suggest parentheses around '-' inside '<<' [-Wparentheses]
38 | if ((b & 1 << n - 1) == 0)
| ~~^~~
ltrominoes.c: In function 'main':
ltrominoes.c:53:2: warning: ignoring return value of 'scanf' declared with attribute 'warn_unused_result' [-Wunused-result]
53 | scanf("%d%d%d", &m, &n, &k);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
ltrominoes.c:55:3: warning: ignoring return value of 'scanf' declared with attribute 'warn_unused_result' [-Wunused-result]
55 | scanf("%d%d", &j, &i), i--, j--;
| ^~~~~~~~~~~~~~~~~~~~~