diff options
author | Edward Smith-Rowland <3dw4rd@verizon.net> | 2014-11-10 15:53:12 +0000 |
---|---|---|
committer | Edward Smith-Rowland <emsr@gcc.gnu.org> | 2014-11-10 15:53:12 +0000 |
commit | 42fd12b1e7fc50183bcf62861aae81301a9efbcf (patch) | |
tree | cdf2ab35de7a1da1bcda63af97f127dea644c2ce /libcpp/pch.c | |
parent | 6d64f20c8d50ce563f7b709593ac1229f2146c61 (diff) | |
download | gcc-42fd12b1e7fc50183bcf62861aae81301a9efbcf.zip gcc-42fd12b1e7fc50183bcf62861aae81301a9efbcf.tar.gz gcc-42fd12b1e7fc50183bcf62861aae81301a9efbcf.tar.bz2 |
cpplib.h (cpp_callbacks): Add has_attribute.
libcpp:
2014-11-10 Edward Smith-Rowland <3dw4rd@verizon.net>
* include/cpplib.h (cpp_callbacks): Add has_attribute.
* internal.h (lexer_state): Add in__has_attribute__.
* directives.c (lex_macro_node): Prevent use of __has_attribute__
as a macro.
* expr.c (parse_has_attribute): New function; (eval_token): Look for
__has_attribute__ and route to parse_has_attribute.
* identifiers.c (_cpp_init_hashtable): Initialize n__has_attribute__.
* pch.c (cpp_read_state): Initialize n__has_attribute__.
* traditional.c (enum ls): Add ls_has_attribute, ls_has_attribute_close;
(_cpp_scan_out_logical_line): Attend to __has_attribute__.
gcc/c-family:
2014-11-10 Edward Smith-Rowland <3dw4rd@verizon.net>
* c-cppbuiltin.c (__has_attribute, __has_cpp_attribute): New macros;
(__cpp_rtti, __cpp_exceptions): New macros for C++98;
(__cpp_range_based_for, __cpp_initializer_lists,
__cpp_delegating_constructors, __cpp_nsdmi,
__cpp_inheriting_constructors, __cpp_ref_qualifiers): New macros
for C++11; (__cpp_attribute_deprecated): Remove in favor of
__has_cpp_attribute.
* c-lex.c (cb_has_attribute): New callback CPP function;
(init_c_lex): Set has_attribute callback.
gcc/testsuite:
2014-11-10 Edward Smith-Rowland <3dw4rd@verizon.net>
* g++.dg/cpp1y/feat-cxx11.C: Test new feature macros for C++98
and C++11; Test existence of __has_cpp_attribute; Test C++11
attributes.
* g++.dg/cpp1y/feat-cxx11-neg.C: Ditto.
* g++.dg/cpp1y/feat-cxx14.C: Ditto and test for C++14 attributes.
* g++.dg/cpp1y/feat-cxx98.C: Test new feature macros for C++98.
* g++.dg/cpp1y/feat-cxx98-neg.C: Ditto.
* g++.dg/cpp1y/feat-neg.C: Test that __cpp_rtti, _cpp_exceptions
will be undefined for -fno-rtti -fno-exceptions.
From-SVN: r217292
Diffstat (limited to 'libcpp/pch.c')
-rw-r--r-- | libcpp/pch.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/libcpp/pch.c b/libcpp/pch.c index 3ff39d7..d7a2dac 100644 --- a/libcpp/pch.c +++ b/libcpp/pch.c @@ -835,6 +835,7 @@ cpp_read_state (cpp_reader *r, const char *name, FILE *f, s->n__VA_ARGS__ = cpp_lookup (r, DSC("__VA_ARGS__")); s->n__has_include__ = cpp_lookup (r, DSC("__has_include__")); s->n__has_include_next__ = cpp_lookup (r, DSC("__has_include_next__")); + s->n__has_attribute__ = cpp_lookup (r, DSC("__has_attribute__")); } old_state = r->state; |