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