https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110343
--- Comment #2 from Ed Smith-Rowland <emsr at gcc dot gnu.org> --- The example in the paper: ---------------------------------------------------------- /* gcc -E charset.c > charhelp.c gcc -o charhelp charhelp.c */ #include <stdio.h> #define STR(x) #x int main() { printf("%s", STR(\u0060)); // U+0060 is ` GRAVE ACCENT printf("%s", "\u0060"); // U+0060 is ` GRAVE ACCENT } ---------------------------------------------------------- Does give an error, but when I preprocess the file with -E the result compiles just fine with either C or C++. Preprocessor bug?