diff options
author | Jonathan Wakely <jwakely@redhat.com> | 2023-05-17 13:47:54 +0100 |
---|---|---|
committer | Jonathan Wakely <jwakely@redhat.com> | 2023-05-17 20:01:49 +0100 |
commit | 98827c53ed38886795b1f479c1d997fd89011c38 (patch) | |
tree | dfda4bb855c1fc516fcc9ca365e2ab00a369c124 | |
parent | ba490492e51834db645a3165d14f2ba0af62a8c7 (diff) | |
download | gcc-98827c53ed38886795b1f479c1d997fd89011c38.tar.gz |
libstdc++: Add system_header pragma to <bits/c++config.h>
Without this change many tests that depend on an effective-target will
fail when compiled with -pedantic -std=c++98. This happens because the
preprocessor check done by v3_check_preprocessor_condition uses -Werror
and includes <bits/c++config.h> directly (rather than via another header
like <string>). If <bits/c++config.h> is not a system header then this
pedwarn is not suppressed, and the effective-target check fails:
bits/c++config.h:220: error: anonymous variadic macros were introduced in C++11 [-Werror=variadic-macros]
cc1plus: all warnings being treated as errors
compiler exited with status 1
UNSUPPORTED: 18_support/headers/limits/synopsis.cc
We could consider also changing proc v3_check_preprocessor_condition so
that it includes a real header, rather than just <bits/c++config.h>, but
that's not necessary for now.
libstdc++-v3/ChangeLog:
* include/bits/c++config: Add system_header pragma.
-rw-r--r-- | libstdc++-v3/include/bits/c++config | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/libstdc++-v3/include/bits/c++config b/libstdc++-v3/include/bits/c++config index 13892787e09..009a017b048 100644 --- a/libstdc++-v3/include/bits/c++config +++ b/libstdc++-v3/include/bits/c++config @@ -30,6 +30,8 @@ #ifndef _GLIBCXX_CXX_CONFIG_H #define _GLIBCXX_CXX_CONFIG_H 1 +#pragma GCC system_header + // The major release number for the GCC release the C++ library belongs to. #define _GLIBCXX_RELEASE |