| /* Test for hex floating point constants: in C99 only. Preprocessor test. */ |
| /* Origin: Joseph Myers <jsm28@cam.ac.uk> */ |
| /* { dg-do run } */ |
| /* { dg-options "-std=iso9899:1990 -pedantic-errors" } */ |
| |
| #define f ( |
| #define l ) |
| #define str(x) #x |
| #define xstr(x) str(x) |
| |
| /* C90: "0x1p+( 0x1p+)"; C99: "0x1p+f 0x1p+l" */ |
| const char *s = xstr(0x1p+f 0x1p+l); |
| |
| extern void abort (void); |
| extern int strcmp (const char *, const char *); |
| |
| int |
| main (void) |
| { |
| if (strcmp (s, "0x1p+( 0x1p+)")) |
| abort (); |
| else |
| return 0; /* Correct C90 behavior. */ |
| } |