http://gcc.gnu.org/bugzilla/show_bug.cgi?id=61038
Bug ID: 61038 Summary: g++ -E is unusable with UDL strings Product: gcc Version: 4.9.0 Status: UNCONFIRMED Severity: critical Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: b.r.longbons at gmail dot com The following program is legal and compiles correctly. However, if preprocessed only, the .ii file in invalid because it fails to escape the ""s gcc 4.7, 4.8, and 4.9 all fail. Earlier versions did not support UDLs. I am marking this as "critical" because it makes reducing testcases for other bugs very difficult. // compile with -std=c++11 void operator "" _s(const char *, unsigned long) { } #define QUOTE(s) #s int main() { QUOTE("hello"_s); }