summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJonathan Wakely <jwakely@redhat.com>2023-05-17 13:47:54 +0100
committerJonathan Wakely <jwakely@redhat.com>2023-05-17 20:01:49 +0100
commit98827c53ed38886795b1f479c1d997fd89011c38 (patch)
treedfda4bb855c1fc516fcc9ca365e2ab00a369c124
parentba490492e51834db645a3165d14f2ba0af62a8c7 (diff)
downloadgcc-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++config2
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