summaryrefslogtreecommitdiff
path: root/gcc/testsuite/gcc.dg/Wparentheses-10.c
blob: aafcae2ad360e31db3bc763f3f2764a1ce2eae8d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
/* Test operation of -Wparentheses.  Warnings for assignments used as
   truth-values shouldn't apply other than for plain assignment.  */
/* Origin: Joseph Myers <jsm@polyomino.org.uk> */

/* { 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);
}