/* PR preprocessor/104147 */ /* { dg-do run } */ #define X(x,y) x y #define STR_(x) #x #define STR(x) STR_(x) const char *str = STR(X(Y,Y)) #define Y() STR(X(Y,Y)) #undef Y STR(X(Y,Y)) #define Y() STR(X(Y,Y)) STR(X(Y, Y)) STR(X(Y ,Y)) ; int main () { if (__builtin_strcmp (str, "Y YY YY YY YY YY Y") != 0) __builtin_abort (); return 0; }