[PATCH 1/2]: C N2653 char8_t: Language support
Tom Honermann
tom@honermann.net
Sat Jan 8 00:42:37 GMT 2022
This patch implements the core language and compiler dependent library
changes proposed in WG14 N2653 [1] for C2x. The changes include:
- Change of type for UTF-8 string literals from array of char to array
of char8_t (unsigned char) when targeting C2x.
- A new atomic_char8_t typedef.
- A new ATOMIC_CHAR8_T_LOCK_FREE macro defined in terms of the existing
__GCC_ATOMIC_CHAR8_T_LOCK_FREE predefined macro.
Tested on Linux x86_64.
gcc/ChangeLog:
2022-01-07 Tom Honermann <tom@honermann.net>
* ginclude/stdatomic.h (atomic_char8_t,
ATOMIC_CHAR8_T_LOCK_FREE): New typedef and macro.
gcc/c/ChangeLog:
2022-01-07 Tom Honermann <tom@honermann.net>
* c-parser.c (c_parser_string_literal): Use char8_t as the type
of CPP_UTF8STRING when char8_t support is enabled.
* c-typeck.c (digest_init): Allow initialization of an array
of character type by a string literal with type array of
char8_t.
gcc/c-family/ChangeLog:
2022-01-07 Tom Honermann <tom@honermann.net>
* c-lex.c (lex_string, lex_charconst): Use char8_t as the type
of CPP_UTF8CHAR and CPP_UTF8STRING when char8_t support is
enabled.
* c-opts.c (c_common_post_options): Set flag_char8_t if
targeting C2x.
Tom.
[1]: WG14 N2653
"char8_t: A type for UTF-8 characters and strings (Revision 1)"
http://www.open-std.org/jtc1/sc22/wg14/www/docs/n2653.htm
-------------- next part --------------
A non-text attachment was scrubbed...
Name: n2653-1.patch
Type: text/x-patch
Size: 5098 bytes
Desc: not available
URL: <https://gcc.gnu.org/pipermail/gcc-patches/attachments/20220107/fecf0322/attachment.bin>
More information about the Gcc-patches
mailing list