1 /* PR c/80116 */ 2 /* { dg-options "-Wmultistatement-macros" } */ 3 /* { dg-do compile } */ 4 5 #define SWAP(X, Y) \ 6 tmp = X; /* { dg-warning "macro expands to multiple statements" } */ \ 7 X = Y; \ 8 Y = tmp 9 10 #define BODY_AND_IF(COND, X, Y) \ 11 if (COND) SWAP (X, Y) /* { dg-message "in expansion of macro .SWAP." } */ 12 13 void fn(int x,int y)14fn (int x, int y) 15 { 16 int tmp; 17 BODY_AND_IF (1, x, y); /* { dg-message "in expansion of macro .BODY_AND_IF." } */ 18 } 19