summaryrefslogtreecommitdiff
path: root/external/gpl3/gcc/dist/libcpp/include/cpplib.h
diff options
context:
space:
mode:
authormrg <mrg@NetBSD.org>2018-02-02 03:41:02 +0000
committermrg <mrg@NetBSD.org>2018-02-02 03:41:02 +0000
commitbb2a37e486e179156b800d85e24a50037cc333b0 (patch)
tree8e103bc000cedfca03cb4a51ec0ac6d53b0c91e8 /external/gpl3/gcc/dist/libcpp/include/cpplib.h
parent63aace61950f51357460837efe56d185001ae985 (diff)
merge GCC 6.4.0. sanitizer stuff is probably busted, but most
other changes merged easily. docs need to be regenerated with modern versions still.
Diffstat (limited to 'external/gpl3/gcc/dist/libcpp/include/cpplib.h')
-rw-r--r--external/gpl3/gcc/dist/libcpp/include/cpplib.h22
1 files changed, 16 insertions, 6 deletions
diff --git a/external/gpl3/gcc/dist/libcpp/include/cpplib.h b/external/gpl3/gcc/dist/libcpp/include/cpplib.h
index 6ccb441ff41..7c691251ca0 100644
--- a/external/gpl3/gcc/dist/libcpp/include/cpplib.h
+++ b/external/gpl3/gcc/dist/libcpp/include/cpplib.h
@@ -1,5 +1,5 @@
/* Definitions for CPP library.
- Copyright (C) 1995-2015 Free Software Foundation, Inc.
+ Copyright (C) 1995-2016 Free Software Foundation, Inc.
Written by Per Bothner, 1994-95.
This program is free software; you can redistribute it and/or modify it
@@ -119,6 +119,7 @@ struct _cpp_file;
TK(WCHAR, LITERAL) /* L'char' */ \
TK(CHAR16, LITERAL) /* u'char' */ \
TK(CHAR32, LITERAL) /* U'char' */ \
+ TK(UTF8CHAR, LITERAL) /* u8'char' */ \
TK(OTHER, LITERAL) /* stray punctuation */ \
\
TK(STRING, LITERAL) /* "string" */ \
@@ -133,6 +134,7 @@ struct _cpp_file;
TK(WCHAR_USERDEF, LITERAL) /* L'char'_suffix - C++-0x */ \
TK(CHAR16_USERDEF, LITERAL) /* u'char'_suffix - C++-0x */ \
TK(CHAR32_USERDEF, LITERAL) /* U'char'_suffix - C++-0x */ \
+ TK(UTF8CHAR_USERDEF, LITERAL) /* u8'char'_suffix - C++-0x */ \
TK(STRING_USERDEF, LITERAL) /* "string"_suffix - C++-0x */ \
TK(WSTRING_USERDEF, LITERAL) /* L"string"_suffix - C++-0x */ \
TK(STRING16_USERDEF, LITERAL) /* u"string"_suffix - C++-0x */ \
@@ -235,7 +237,8 @@ struct GTY(()) cpp_identifier {
/* A preprocessing token. This has been carefully packed and should
occupy 16 bytes on 32-bit hosts and 24 bytes on 64-bit hosts. */
struct GTY(()) cpp_token {
- source_location src_loc; /* Location of first char of token. */
+ source_location src_loc; /* Location of first char of token,
+ together with range of full token. */
ENUM_BITFIELD(cpp_ttype) type : CHAR_BIT; /* token type */
unsigned short flags; /* flags - see above */
@@ -339,6 +342,9 @@ struct cpp_options
/* Nonzero means process u/U prefix literals (UTF-16/32). */
unsigned char uliterals;
+ /* Nonzero means process u8 prefixed character literals (UTF-8). */
+ unsigned char utf8_char_literals;
+
/* Nonzero means process r/R raw strings. If this is set, uliterals
must be set as well. */
unsigned char rliterals;
@@ -484,6 +490,9 @@ struct cpp_options
/* True if warn about differences between C90 and C99. */
signed char cpp_warn_c90_c99_compat;
+ /* True if warn about differences between C++98 and C++11. */
+ bool cpp_warn_cxx11_compat;
+
/* Dependency generation. */
struct
{
@@ -546,7 +555,7 @@ struct cpp_callbacks
The line_map is for the new file. It is NULL if there is no new file.
(In C this happens when done with <built-in>+<command line> and also
when done with a main file.) This can be used for resource cleanup. */
- void (*file_change) (cpp_reader *, const struct line_map *);
+ void (*file_change) (cpp_reader *, const line_map_ordinary *);
void (*dir_change) (cpp_reader *, const char *);
void (*include) (cpp_reader *, source_location, const unsigned char *,
@@ -565,9 +574,9 @@ struct cpp_callbacks
/* Called to emit a diagnostic. This callback receives the
translated message. */
- bool (*error) (cpp_reader *, int, int, source_location, unsigned int,
+ bool (*error) (cpp_reader *, int, int, rich_location *,
const char *, va_list *)
- ATTRIBUTE_FPTR_PRINTF(6,0);
+ ATTRIBUTE_FPTR_PRINTF(5,0);
/* Callbacks for when a macro is expanded, or tested (whether
defined or not at the time) in #ifdef, #ifndef or "defined". */
@@ -964,7 +973,8 @@ enum {
CPP_W_LITERAL_SUFFIX,
CPP_W_DATE_TIME,
CPP_W_PEDANTIC,
- CPP_W_C90_C99_COMPAT
+ CPP_W_C90_C99_COMPAT,
+ CPP_W_CXX11_COMPAT
};
/* Output a diagnostic of some kind. */