1/* { dg-do run } */ 2/* { dg-options "-std=c90 -pedantic-errors" } */ 3 4#define f ( 5#define l ) 6#define str(x) #x 7#define xstr(x) str(x) 8 9/* C90 and C++98: "0x1p+( 0x1p+)" */ 10/* C99 and C++11: "0x1p+f 0x1p+l" */ 11const char *s = xstr(0x1p+f 0x1p+l); 12 13void abort (void); 14int strcmp (const char *, const char *); 15 16int 17main() 18{ 19 if (strcmp (s, "0x1p+( 0x1p+)")) 20 abort (); /* Correct C99 and C++11 behavior. */ 21 else 22 return 0; /* Correct C90 and C++ behavior. */ 23} 24