[Bug c++/49952] New: Unicode literals do not generate errors as prescribed by the FDIS standard

z0sh at sogetthis dot com gcc-bugzilla@gcc.gnu.org
Tue Aug 2 22:09:00 GMT 2011


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49952

           Summary: Unicode literals do not generate errors as prescribed
                    by the FDIS standard
           Product: gcc
           Version: 4.6.1
            Status: UNCONFIRMED
          Severity: trivial
          Priority: P3
         Component: c++
        AssignedTo: unassigned@gcc.gnu.org
        ReportedBy: z0sh@sogetthis.com
              Host: Linux x86


Referring to the standard:
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2442.htm

The character literal \UNNNNNNNN must only accept characters in the range
0-0x10FFFF, excluding surrogates. However, GCC allows 31-bit values above
0x10FFFF. To wit, the following compiles:

    char32_t s[] = U"\U0010FFFF\U7FFFFFFF";

It may be that the actual wording of the FDIS (2.3.2, p.19) is more relaxed
than in the reference I gave above and that this behaviour is in fact
intentional, but I thought I bring it up anyway.



More information about the Gcc-bugs mailing list