mirror of
https://github.com/gcc-mirror/gcc.git
synced 2026-05-06 23:25:24 +02:00
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:
committed by
Jeff Law
parent
39836f8324
commit
eccec86841
@@ -638,6 +638,9 @@ init_iconv_desc (cpp_reader *pfile, const char *to, const char *from)
|
||||
char *pair;
|
||||
size_t i;
|
||||
|
||||
ret.to = to;
|
||||
ret.from = from;
|
||||
|
||||
if (!strcasecmp (to, from))
|
||||
{
|
||||
ret.func = convert_no_conversion;
|
||||
|
||||
@@ -2596,6 +2596,20 @@ cpp_set_callbacks (cpp_reader *pfile, cpp_callbacks *cb)
|
||||
pfile->cb = *cb;
|
||||
}
|
||||
|
||||
/* The narrow character set identifier. */
|
||||
const char *
|
||||
cpp_get_narrow_charset_name (cpp_reader *pfile)
|
||||
{
|
||||
return pfile->narrow_cset_desc.to;
|
||||
}
|
||||
|
||||
/* The wide character set identifier. */
|
||||
const char *
|
||||
cpp_get_wide_charset_name (cpp_reader *pfile)
|
||||
{
|
||||
return pfile->wide_cset_desc.to;
|
||||
}
|
||||
|
||||
/* The dependencies structure. (Creates one if it hasn't already been.) */
|
||||
class mkdeps *
|
||||
cpp_get_deps (cpp_reader *pfile)
|
||||
|
||||
@@ -1005,6 +1005,11 @@ extern class mkdeps *cpp_get_deps (cpp_reader *) ATTRIBUTE_PURE;
|
||||
extern const char *cpp_find_header_unit (cpp_reader *, const char *file,
|
||||
bool angle_p, location_t);
|
||||
|
||||
/* Call these to get name data about the various compile-time
|
||||
charsets. */
|
||||
extern const char *cpp_get_narrow_charset_name (cpp_reader *) ATTRIBUTE_PURE;
|
||||
extern const char *cpp_get_wide_charset_name (cpp_reader *) ATTRIBUTE_PURE;
|
||||
|
||||
/* This function reads the file, but does not start preprocessing. It
|
||||
returns the name of the original file; this is the same as the
|
||||
input file, except for preprocessed input. This will generate at
|
||||
|
||||
@@ -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))
|
||||
|
||||
Reference in New Issue
Block a user