From eccec8684142e05f2f92f0f5bd5b47dda3ba1529 Mon Sep 17 00:00:00 2001 From: JeanHeyd Meneide Date: Tue, 1 Dec 2020 14:39:47 -0700 Subject: 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. --- gcc/doc/cpp.texi | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'gcc/doc') diff --git a/gcc/doc/cpp.texi b/gcc/doc/cpp.texi index 291e146..5dcd672 100644 --- a/gcc/doc/cpp.texi +++ b/gcc/doc/cpp.texi @@ -2451,6 +2451,15 @@ features are supported by GCC. @item __NO_MATH_ERRNO__ This macro is defined if @option{-fno-math-errno} is used, or enabled by another option such as @option{-ffast-math} or by default. + +@item __GNUC_EXECUTION_CHARSET_NAME +@itemx __GNUC_WIDE_EXECUTION_CHARSET_NAME +These macros are defined to expand to a narrow string literal of +the name of the narrow and wide compile-time execution character +set used. It directly reflects the name passed to the options +@option{-fexec-charset} and @option{-fwide-exec-charset}, or the defaults +documented for those options (that is, it can expand to something like +@code{"UTF-8"}). @xref{Invocation}. @end table @node System-specific Predefined Macros -- cgit v1.1