(root)/
gcc-13.2.0/
gcc/
testsuite/
c-c++-common/
Wmultistatement-macros-12.c
       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