/* Test operation of -Wparentheses. Warnings for assignments used as truth-values shouldn't apply other than for plain assignment. */ /* Origin: Joseph Myers */ /* { dg-do compile } */ /* { dg-options "-Wparentheses -std=gnu99" } */ int foo (int); int a, b, c; _Bool d; void bar (void) { if (a += b) foo (0); if (a -= a) foo (1); if (b *= c) foo (2); else foo (3); if (b /= b) foo (4); else foo (5); while (c %= b) foo (6); while (c <<= c) foo (7); do foo (8); while (a >>= b); do foo (9); while (a &= a); for (;c ^= b;) foo (10); for (;c |= c;) foo (11); d = a += b; foo (12); d = a -= a; foo (13); }