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