1 /* PR c/70436 */ 2 /* { dg-options "-Wparentheses" } */ 3 4 int a, b, c; 5 void bar (void); 6 void baz (void); 7 8 void foo(void)9foo (void) 10 { 11 int i, j; 12 13 if (a) /* { dg-warning "ambiguous" } */ 14 for (;;) 15 if (b) 16 bar (); 17 else 18 baz (); 19 20 if (a) /* { dg-warning "ambiguous" } */ 21 while (1) 22 if (b) 23 bar (); 24 else 25 baz (); 26 27 if (a) /* { dg-warning "ambiguous" } */ 28 while (1) 29 for (;;) 30 if (b) 31 bar (); 32 else 33 baz (); 34 35 if (a) /* { dg-warning "ambiguous" } */ 36 while (1) 37 while (1) 38 if (b) 39 bar (); 40 else 41 baz (); 42 43 if (a) /* { dg-warning "ambiguous" } */ 44 for (i = 0; i < 10; i++) 45 for (j = 0; j < 10; j++) 46 if (b) 47 bar (); 48 else 49 baz (); 50 51 if (a) 52 for (i = 0; i < 10; i++) 53 if (b) /* { dg-warning "ambiguous" } */ 54 for (j = 0; j < 10; j++) 55 if (c) 56 bar (); 57 else 58 baz (); 59 60 if (a) /* { dg-warning "ambiguous" } */ 61 for (i = 0; i < 10; i++) 62 if (b) 63 for (j = 0; j < 10; j++) 64 if (c) 65 bar (); 66 else 67 baz (); 68 else 69 bar (); 70 71 if (a) /* { dg-warning "ambiguous" } */ 72 for (;;) 73 if (b) 74 while (1) 75 if (a) 76 bar (); 77 else 78 baz (); 79 else 80 bar (); 81 82 if (a) /* { dg-warning "ambiguous" } */ 83 for (;;) 84 if (b) 85 while (1) 86 { 87 if (a) { bar (); } else { baz (); } 88 } 89 else 90 bar (); 91 92 if (a) 93 for (;;) 94 if (b) 95 bar (); 96 else 97 baz (); 98 else bar (); 99 100 if (a) 101 while (1) 102 if (b) 103 bar (); 104 else 105 baz (); 106 else bar (); 107 108 if (a) 109 for (;;) 110 { 111 if (b) 112 bar (); 113 else 114 baz (); 115 } 116 117 if (a) 118 { 119 for (;;) 120 if (b) 121 bar (); 122 } 123 else baz (); 124 125 if (a) 126 do 127 if (b) bar (); else baz (); 128 while (b); 129 130 if (a) 131 do 132 if (b) bar (); 133 while (b); 134 else baz (); 135 } 136