gcc/
[official-gcc.git] / gcc / testsuite / gcc.dg / Wparentheses-10.c
blobaafcae2ad360e31db3bc763f3f2764a1ce2eae8d
1 /* Test operation of -Wparentheses. Warnings for assignments used as
2 truth-values shouldn't apply other than for plain assignment. */
3 /* Origin: Joseph Myers <jsm@polyomino.org.uk> */
5 /* { dg-do compile } */
6 /* { dg-options "-Wparentheses -std=gnu99" } */
8 int foo (int);
10 int a, b, c;
11 _Bool d;
13 void
14 bar (void)
16 if (a += b)
17 foo (0);
18 if (a -= a)
19 foo (1);
20 if (b *= c)
21 foo (2);
22 else
23 foo (3);
24 if (b /= b)
25 foo (4);
26 else
27 foo (5);
28 while (c %= b)
29 foo (6);
30 while (c <<= c)
31 foo (7);
32 do foo (8); while (a >>= b);
33 do foo (9); while (a &= a);
34 for (;c ^= b;)
35 foo (10);
36 for (;c |= c;)
37 foo (11);
38 d = a += b;
39 foo (12);
40 d = a -= a;
41 foo (13);