Feature: Macros for identifying the wide and narrow execution string literal encoding

gcc/c-family
	* c-cppbuiltin.c (c_cpp_builtins): Add predefined
	{__GNUC_EXECUTION_CHARSET_NAME} and
	_WIDE_EXECUTION_CHARSET_NAME} macros.

gcc/
	* doc/cpp.texi: Document new macros.

gcc/testsuite/
	* c-c++-common/cpp/wide-narrow-predef-macros.c: New test.

libcpp/
	* charset.c (init_iconv_desc): Initialize "to" and "from" fields.
	* directives.c (cpp_get_narrow_charset_name): New function.
	(cpp_get_wide_charset_name): Likewise.
	* include/cpplib.h (cpp_get_narrow_charset_name): Prototype.
	(cpp_get_wide_charset_name): Likewise.
	* internal.h (cset_converter): Add "to" and "from" fields.
This commit is contained in:
JeanHeyd Meneide
2020-12-01 14:39:47 -07:00
committed by Jeff Law
parent 39836f8324
commit eccec86841
7 changed files with 53 additions and 0 deletions

View File

@@ -48,6 +48,8 @@ struct cset_converter
convert_f func;
iconv_t cd;
int width;
const char* from;
const char* to;
};
#define BITS_PER_CPPCHAR_T (CHAR_BIT * sizeof (cppchar_t))