1 /* { dg-do run } */ 2 3 /* Test for odd corner cases in stringizing/pasting. 4 Taken more or less verbatim from C99 section 6.10.3.3. */ 5 6 #include <stdlib.h> 7 #include <string.h> 8 9 #define hash_hash # ## # 10 #define mkstr(a) # a 11 #define in_between(a) mkstr(a) 12 #define join(c, d) in_between(c hash_hash d) 13 14 const char p[] = join(x, y); 15 const char q[] = "x ## y"; 16 17 int main(void)18main (void) 19 { 20 if (strcmp (p, q)) 21 abort (); 22 return 0; 23 } 24