/* Test operation of -Wparentheses.  Precedence warnings.  & or ^ or +
   or - or comparison inside |.  */
/* Origin: Joseph Myers <jsm@polyomino.org.uk> */

/* { dg-do compile } */
/* { dg-options "-Wparentheses" } */

int foo (int);

int
bar (int a, int b, int c)
{
  foo (a & b | c); /* { dg-warning "parentheses" "correct warning" } */
  foo ((a & b) | c);
  foo (a & (b | c));
  foo (1 & 2 | c); /* { dg-warning "parentheses" "correct warning" } */
  foo ((1 & 2) | c);
  foo (1 & (2 | c));
  foo (1 & 2 | 3); /* { dg-warning "parentheses" "correct warning" } */
  foo ((1 & 2) | 3);
  foo (1 & (2 | 3));
  foo (a | b & c); /* { dg-warning "parentheses" "correct warning" } */
  foo ((a | b) & c);
  foo (a | (b & c));
  foo (1 | 2 & c); /* { dg-warning "parentheses" "correct warning" } */
  foo ((1 | 2) & c);
  foo (1 | (2 & c));
  foo (1 | 2 & 3); /* { dg-warning "parentheses" "correct warning" } */
  foo ((1 | 2) & 3);
  foo (1 | (2 & 3));
  foo (a ^ b | c); /* { dg-warning "parentheses" "correct warning" } */
  foo ((a ^ b) | c);
  foo (a ^ (b | c));
  foo (1 ^ 2 | c); /* { dg-warning "parentheses" "correct warning" } */
  foo ((1 ^ 2) | c);
  foo (1 ^ (2 | c));
  foo (1 ^ 2 | 3); /* { dg-warning "parentheses" "correct warning" } */
  foo ((1 ^ 2) | 3);
  foo (1 ^ (2 | 3));
  foo (a | b ^ c); /* { dg-warning "parentheses" "correct warning" } */
  foo ((a | b) ^ c);
  foo (a | (b ^ c));
  foo (1 | 2 ^ c); /* { dg-warning "parentheses" "correct warning" } */
  foo ((1 | 2) ^ c);
  foo (1 | (2 ^ c));
  foo (1 | 0x2 ^ 3); /* { dg-warning "parentheses" "correct warning" } */
  foo ((1 | 2) ^ 3);
  foo (1 | (0x2 ^ 3));
  foo (a + b | c); /* { dg-warning "parentheses" "correct warning" } */
  foo ((a + b) | c);
  foo (a + (b | c));
  foo (1 + 2 | c); /* { dg-warning "parentheses" "correct warning" } */
  foo ((1 + 2) | c);
  foo (1 + (2 | c));
  foo (1 + 2 | 3); /* { dg-warning "parentheses" "correct warning" } */
  foo ((1 + 2) | 3);
  foo (1 + (2 | 3));
  foo (a | b + c); /* { dg-warning "parentheses" "correct warning" } */
  foo ((a | b) + c);
  foo (a | (b + c));
  foo (1 | 2 + c); /* { dg-warning "parentheses" "correct warning" } */
  foo ((1 | 2) + c);
  foo (1 | (2 + c));
  foo (1 | 2 + 3); /* { dg-warning "parentheses" "correct warning" } */
  foo ((1 | 2) + 3);
  foo (1 | (2 + 3));
  foo (a - b | c); /* { dg-warning "parentheses" "correct warning" } */
  foo ((a - b) | c);
  foo (a - (b | c));
  foo (1 - 2 | c); /* { dg-warning "parentheses" "correct warning" } */
  foo ((1 - 2) | c);
  foo (1 - (2 | c));
  foo (1 - 2 | 3); /* { dg-warning "parentheses" "correct warning" } */
  foo ((1 - 2) | 3);
  foo (1 - (2 | 3));
  foo (a | b - c); /* { dg-warning "parentheses" "correct warning" } */
  foo ((a | b) - c);
  foo (a | (b - c));
  foo (1 | 2 - c); /* { dg-warning "parentheses" "correct warning" } */
  foo ((1 | 2) - c);
  foo (1 | (2 - c));
  foo (1 | 2 - 3); /* { dg-warning "parentheses" "correct warning" } */
  foo ((1 | 2) - 3);
  foo (1 | (2 - 3));
  foo (a > b | c); /* { dg-warning "parentheses" "correct warning" } */
  foo ((a > b) | c);
  foo (a > (b | c));
  foo (1 > 2 | c); /* { dg-warning "parentheses" "correct warning" } */
  foo ((1 > 2) | c);
  foo (1 > (2 | c));
  foo (1 > 2 | 3); /* { dg-warning "parentheses" "correct warning" } */
  foo ((1 > 2) | 3);
  foo (1 > (2 | 3));
  foo (a | b > c); /* { dg-warning "parentheses" "correct warning" } */
  foo ((a | b) > c);
  foo (a | (b > c));
  foo (1 | 2 > c); /* { dg-warning "parentheses" "correct warning" } */
  foo ((1 | 2) > c);
  foo (1 | (2 > c));
  foo (1 | 2 > 3); /* { dg-warning "parentheses" "correct warning" } */
  foo ((1 | 2) > 3);
  foo (1 | (2 > 3));
  foo (a <= b | c); /* { dg-warning "parentheses" "correct warning" } */
  foo ((a <= b) | c);
  foo (a <= (b | c));
  foo (1 <= 2 | c); /* { dg-warning "parentheses" "correct warning" } */
  foo ((1 <= 2) | c);
  foo (1 <= (2 | c));
  foo (1 <= 2 | 3); /* { dg-warning "parentheses" "correct warning" } */
  foo ((1 <= 2) | 3);
  foo (1 <= (2 | 3));
  foo (a | b <= c); /* { dg-warning "parentheses" "correct warning" } */
  foo ((a | b) <= c);
  foo (a | (b <= c));
  foo (1 | 2 <= c); /* { dg-warning "parentheses" "correct warning" } */
  foo ((1 | 2) <= c);
  foo (1 | (2 <= c));
  foo (1 | 2 <= 3); /* { dg-warning "parentheses" "correct warning" } */
  foo ((1 | 2) <= 3);
  foo (1 | (2 <= 3));
}
