https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64576
--- Comment #3 from Joel Sherrill <joel at gcc dot gnu.org> --- (In reply to Jakub Jelinek from comment #2) > GCC 4.9 behaves the same way with -std=c11, GCC 5 behaves the old way with > -std=c99. -std=c11 turns on unicode literals, i.e. u"str", U"str" and > u8"str". > So for #u"str" you really need to put there whitespace, so that it isn't > parsed as # followed by u"str" string literal. Thanks for the explanation. I was posting that -std=c99 appeared to have an impact and collided with your much better explanation. Is this a change in the default language version for gcc?