| /* Test operation of -Wparentheses. Warnings for ambiguous else. */ |
| /* Origin: Joseph Myers <jsm@polyomino.org.uk> */ |
| |
| /* { dg-do compile } */ |
| /* { dg-options "-Wparentheses" } */ |
| |
| int foo (int); |
| |
| int a, b, c; |
| |
| int |
| bar (void) |
| { |
| if (a) |
| foo (0); |
| if (b) |
| foo (1); |
| else |
| foo (2); |
| if (c) /* { dg-warning "ambiguous" "correct warning" } */ |
| if (a) |
| foo (3); |
| else |
| foo (4); |
| if (a) |
| if (c) |
| foo (5); |
| if (a) |
| if (b) /* { dg-warning "ambiguous" "correct warning" } */ |
| if (c) |
| foo (6); |
| else |
| foo (7); |
| if (a) /* { dg-warning "ambiguous" "correct warning" } */ |
| if (b) |
| if (c) |
| foo (8); |
| else |
| foo (9); |
| else |
| foo (10); |
| if (a) |
| if (b) |
| if (c) |
| foo (11); |
| else |
| foo (12); |
| else |
| foo (13); |
| else |
| foo (14); |
| if (a) { |
| if (b) |
| if (c) |
| foo (15); |
| else |
| foo (16); |
| else |
| foo (17); |
| } |
| } |