https://gcc.gnu.org/bugzilla/show_bug.cgi?id=28388
Richard Biener <rguenth at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution|--- |FIXED --- Comment #7 from Richard Biener <rguenth at gcc dot gnu.org> --- (In reply to Manuel López-Ibáñez from comment #6) > The infinite loop is still present in GCC 4.3 with > > #define A(b) #b > A(\ \\) This now seems to work. I can confirm the issue with GCC 4.3 but GCC 7 already does t.c:2:7: warning: invalid string literal, ignoring final '\' A(\ \\) ^ t.c:2:7: warning: unknown escape sequence: '\040' t.c:2:7: error: expected identifier or '(' before string constant A(\ \\) ^ t.c:1:15: note: in definition of macro 'A' #define A(b) #b ^