(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.dg/
cpp/
paste5.c
       1  /* Regression test for bug in convoluted situation involving token paste
       2     plus function-like macros used outside function context.  It may be
       3     easier to understand if you mentally replace 'struct' with 'A'
       4     throughout this file; 'struct' is used only to get the code to compile
       5     when preprocessed correctly.
       6  
       7     The original problem was seen in the Linux kernel and reported by
       8     Jakub Jelinek <jakub@redhat.com>; this test is synthetic.  */
       9  
      10  /* { dg-do compile } */
      11  
      12  #define glue(a,b) a##b
      13  #define struct(x) B(x)
      14  #define E(x) struct x
      15  #define FG (22)
      16  
      17  extern void B(int);
      18  
      19  void foo(void)
      20  {
      21    E(glue(F,*)) dummy;  /* { dg-error "valid preprocessing token" } */
      22  
      23    E(glue(F,G)) ;
      24  }