1 /* PR c/81364 */ 2 /* { dg-do compile } */ 3 /* { dg-options "-Wmultistatement-macros" } */ 4 5 #define FOO0 if (1) { } else 6 #define TST0 \ 7 void bar0 (void) \ 8 { \ 9 FOO0 { } /* { dg-bogus "macro expands to multiple statements" } */ \ 10 } 11 TST0 12 13 #define FOO1 for (;;) 14 #define TST1 \ 15 void bar1 (void) \ 16 { \ 17 FOO1 { } /* { dg-bogus "macro expands to multiple statements" } */ \ 18 } 19 TST1 20 21 #define FOO2 while (1) 22 #define TST2 \ 23 void bar2 (void) \ 24 { \ 25 FOO2 { } /* { dg-bogus "macro expands to multiple statements" } */ \ 26 } 27 TST2 28 29 #define FOO3 switch (1) 30 #define TST3 \ 31 void bar3 (void) \ 32 { \ 33 FOO3 { } /* { dg-bogus "macro expands to multiple statements" } */ \ 34 } 35 TST3 36 37 #define FOO4 if (1) 38 #define TST4 \ 39 void bar4 (void) \ 40 { \ 41 FOO4 { } /* { dg-bogus "macro expands to multiple statements" } */ \ 42 } 43 TST4 44