http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49952
--- Comment #2 from joseph at codesourcery dot com <joseph at codesourcery dot com> 2011-08-03 11:19:01 UTC --- C and C++ reference ISO 10646 instead of Unicode, meaning that it is natural and proper for the full ISO 10646 range of values to be accepted instead of the restricted Unicode range. N3291 does appear to have this restriction on char32_t string (but not character) literals; C1X does not.