http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59873
--- Comment #4 from Marc Glisse <glisse at gcc dot gnu.org> --- Seems to be on purpose, see the comment before _cpp_valid_ucn in libcpp/charset.c, and the last instruction in that function. [lex.charset] is a bit hard to read for me.