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"  */
11 const char *s = xstr(0x1p+f 0x1p+l);
12 
13 void abort (void);
14 int strcmp (const char *, const char *);
15 
16 int
main()17 main()
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