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