aboutsummaryrefslogtreecommitdiff
path: root/libstdc++-v3/include/std
diff options
context:
space:
mode:
authorJason Merrill <jason@redhat.com>2024-09-12 12:15:51 -0400
committerJason Merrill <jason@redhat.com>2024-09-25 08:20:45 -0400
commit63a598deb0c9fcb8704af6ef90f0b905942b0276 (patch)
tree9e3b7ae67e2e7d3f273115aa7bff981ff4e5fddc /libstdc++-v3/include/std
parent2407dbe1d887068a13c6ee9b6922560f1c89def5 (diff)
downloadgcc-63a598deb0c9fcb8704af6ef90f0b905942b0276.zip
gcc-63a598deb0c9fcb8704af6ef90f0b905942b0276.tar.gz
gcc-63a598deb0c9fcb8704af6ef90f0b905942b0276.tar.bz2
libstdc++: #ifdef out #pragma GCC system_header
In r15-3714-gd3a7302ec5985a I added -Wsystem-headers to the libstdc++ build flags to help catch problems in the library. This patch takes a different approach, of disabling the #pragma system_header unless _GLIBCXX_SYSHDR is defined. As a result, the testsuites will treat them as non-system-headers to get better warning coverage during regression testing of both gcc and libstdc++, not just when building the library. My rationale for the #ifdef instead of just removing the #pragma is the three G++ tests that want to test libstdc++ system header behavior, so we need a way to select it. This doesn't affect installed libraries, as they get their system-header status from the lookup path. But testsuite_flags --build-includes gives -I directives rather than -isystem. This patch doesn't change the headers in config/ because I'm not compiling with most of them, so won't see any warnings that need fixing. Adjusting them could happen later, or we can not bother. libstdc++-v3/ChangeLog: * acinclude.m4 (WARN_FLAGS): Remove -Wsystem-headers. * configure: Regenerate. * include/bits/algorithmfwd.h: #ifdef out #pragma GCC system_header. * include/bits/atomic_base.h * include/bits/atomic_futex.h * include/bits/atomic_timed_wait.h * include/bits/atomic_wait.h * include/bits/basic_ios.h * include/bits/basic_string.h * include/bits/boost_concept_check.h * include/bits/char_traits.h * include/bits/charconv.h * include/bits/chrono.h * include/bits/chrono_io.h * include/bits/codecvt.h * include/bits/concept_check.h * include/bits/cpp_type_traits.h * include/bits/elements_of.h * include/bits/enable_special_members.h * include/bits/erase_if.h * include/bits/forward_list.h * include/bits/functional_hash.h * include/bits/gslice.h * include/bits/gslice_array.h * include/bits/hashtable.h * include/bits/indirect_array.h * include/bits/invoke.h * include/bits/ios_base.h * include/bits/iterator_concepts.h * include/bits/locale_classes.h * include/bits/locale_facets.h * include/bits/locale_facets_nonio.h * include/bits/localefwd.h * include/bits/mask_array.h * include/bits/max_size_type.h * include/bits/memory_resource.h * include/bits/memoryfwd.h * include/bits/move_only_function.h * include/bits/node_handle.h * include/bits/ostream_insert.h * include/bits/out_ptr.h * include/bits/parse_numbers.h * include/bits/postypes.h * include/bits/quoted_string.h * include/bits/range_access.h * include/bits/ranges_base.h * include/bits/refwrap.h * include/bits/sat_arith.h * include/bits/semaphore_base.h * include/bits/slice_array.h * include/bits/std_abs.h * include/bits/std_function.h * include/bits/std_mutex.h * include/bits/std_thread.h * include/bits/stl_iterator_base_funcs.h * include/bits/stl_iterator_base_types.h * include/bits/stl_tree.h * include/bits/stream_iterator.h * include/bits/streambuf_iterator.h * include/bits/stringfwd.h * include/bits/this_thread_sleep.h * include/bits/unique_lock.h * include/bits/uses_allocator_args.h * include/bits/utility.h * include/bits/valarray_after.h * include/bits/valarray_array.h * include/bits/valarray_before.h * include/bits/version.h * include/c_compatibility/fenv.h * include/c_compatibility/inttypes.h * include/c_compatibility/stdint.h * include/decimal/decimal.h * include/experimental/bits/net.h * include/experimental/bits/shared_ptr.h * include/ext/aligned_buffer.h * include/ext/alloc_traits.h * include/ext/atomicity.h * include/ext/concurrence.h * include/ext/numeric_traits.h * include/ext/pod_char_traits.h * include/ext/pointer.h * include/ext/stdio_filebuf.h * include/ext/stdio_sync_filebuf.h * include/ext/string_conversions.h * include/ext/type_traits.h * include/ext/vstring.h * include/ext/vstring_fwd.h * include/ext/vstring_util.h * include/parallel/algorithmfwd.h * include/parallel/numericfwd.h * include/tr1/functional_hash.h * include/tr1/hashtable.h * include/tr1/random.h * libsupc++/exception.h * libsupc++/hash_bytes.h * include/bits/basic_ios.tcc * include/bits/basic_string.tcc * include/bits/fstream.tcc * include/bits/istream.tcc * include/bits/locale_classes.tcc * include/bits/locale_facets.tcc * include/bits/locale_facets_nonio.tcc * include/bits/ostream.tcc * include/bits/sstream.tcc * include/bits/streambuf.tcc * include/bits/string_view.tcc * include/bits/version.tpl * include/experimental/bits/string_view.tcc * include/ext/pb_ds/detail/resize_policy/hash_prime_size_policy_imp.hpp * include/ext/random.tcc * include/ext/vstring.tcc * include/tr2/bool_set.tcc * include/tr2/dynamic_bitset.tcc * include/bits/c++config * include/c/cassert * include/c/cctype * include/c/cerrno * include/c/cfloat * include/c/ciso646 * include/c/climits * include/c/clocale * include/c/cmath * include/c/csetjmp * include/c/csignal * include/c/cstdarg * include/c/cstddef * include/c/cstdio * include/c/cstdlib * include/c/cstring * include/c/ctime * include/c/cuchar * include/c/cwchar * include/c/cwctype * include/c_global/cassert * include/c_global/ccomplex * include/c_global/cctype * include/c_global/cerrno * include/c_global/cfenv * include/c_global/cfloat * include/c_global/cinttypes * include/c_global/ciso646 * include/c_global/climits * include/c_global/clocale * include/c_global/cmath * include/c_global/csetjmp * include/c_global/csignal * include/c_global/cstdalign * include/c_global/cstdarg * include/c_global/cstdbool * include/c_global/cstddef * include/c_global/cstdint * include/c_global/cstdio * include/c_global/cstdlib * include/c_global/cstring * include/c_global/ctgmath * include/c_global/ctime * include/c_global/cuchar * include/c_global/cwchar * include/c_global/cwctype * include/c_std/cassert * include/c_std/cctype * include/c_std/cerrno * include/c_std/cfloat * include/c_std/ciso646 * include/c_std/climits * include/c_std/clocale * include/c_std/cmath * include/c_std/csetjmp * include/c_std/csignal * include/c_std/cstdarg * include/c_std/cstddef * include/c_std/cstdio * include/c_std/cstdlib * include/c_std/cstring * include/c_std/ctime * include/c_std/cuchar * include/c_std/cwchar * include/c_std/cwctype * include/debug/array * include/debug/bitset * include/debug/deque * include/debug/forward_list * include/debug/list * include/debug/map * include/debug/set * include/debug/string * include/debug/unordered_map * include/debug/unordered_set * include/debug/vector * include/decimal/decimal * include/experimental/algorithm * include/experimental/any * include/experimental/array * include/experimental/buffer * include/experimental/chrono * include/experimental/contract * include/experimental/deque * include/experimental/executor * include/experimental/filesystem * include/experimental/forward_list * include/experimental/functional * include/experimental/internet * include/experimental/io_context * include/experimental/iterator * include/experimental/list * include/experimental/map * include/experimental/memory * include/experimental/memory_resource * include/experimental/net * include/experimental/netfwd * include/experimental/numeric * include/experimental/propagate_const * include/experimental/ratio * include/experimental/regex * include/experimental/scope * include/experimental/set * include/experimental/socket * include/experimental/string * include/experimental/string_view * include/experimental/synchronized_value * include/experimental/system_error * include/experimental/timer * include/experimental/tuple * include/experimental/type_traits * include/experimental/unordered_map * include/experimental/unordered_set * include/experimental/vector * include/ext/algorithm * include/ext/cmath * include/ext/functional * include/ext/iterator * include/ext/memory * include/ext/numeric * include/ext/random * include/ext/rb_tree * include/ext/rope * include/parallel/algorithm * include/std/algorithm * include/std/any * include/std/array * include/std/atomic * include/std/barrier * include/std/bit * include/std/bitset * include/std/charconv * include/std/chrono * include/std/codecvt * include/std/complex * include/std/concepts * include/std/condition_variable * include/std/coroutine * include/std/deque * include/std/execution * include/std/expected * include/std/filesystem * include/std/format * include/std/forward_list * include/std/fstream * include/std/functional * include/std/future * include/std/generator * include/std/iomanip * include/std/ios * include/std/iosfwd * include/std/iostream * include/std/istream * include/std/iterator * include/std/latch * include/std/limits * include/std/list * include/std/locale * include/std/map * include/std/memory * include/std/memory_resource * include/std/mutex * include/std/numbers * include/std/numeric * include/std/optional * include/std/ostream * include/std/print * include/std/queue * include/std/random * include/std/ranges * include/std/ratio * include/std/regex * include/std/scoped_allocator * include/std/semaphore * include/std/set * include/std/shared_mutex * include/std/span * include/std/spanstream * include/std/sstream * include/std/stack * include/std/stacktrace * include/std/stdexcept * include/std/streambuf * include/std/string * include/std/string_view * include/std/syncstream * include/std/system_error * include/std/text_encoding * include/std/thread * include/std/tuple * include/std/type_traits * include/std/typeindex * include/std/unordered_map * include/std/unordered_set * include/std/utility * include/std/valarray * include/std/variant * include/std/vector * include/std/version * include/tr1/array * include/tr1/cfenv * include/tr1/cinttypes * include/tr1/cmath * include/tr1/complex * include/tr1/cstdbool * include/tr1/cstdint * include/tr1/cstdio * include/tr1/cstdlib * include/tr1/cwchar * include/tr1/cwctype * include/tr1/functional * include/tr1/memory * include/tr1/random * include/tr1/regex * include/tr1/tuple * include/tr1/type_traits * include/tr1/unordered_map * include/tr1/unordered_set * include/tr1/utility * include/tr2/bool_set * include/tr2/dynamic_bitset * include/tr2/type_traits * libsupc++/atomic_lockfree_defines.h * libsupc++/compare * libsupc++/cxxabi.h * libsupc++/cxxabi_forced.h * libsupc++/cxxabi_init_exception.h * libsupc++/exception * libsupc++/initializer_list * libsupc++/new * libsupc++/typeinfo: Likewise. * testsuite/20_util/ratio/operations/ops_overflow_neg.cc * testsuite/23_containers/array/tuple_interface/get_neg.cc * testsuite/23_containers/vector/cons/destructible_debug_neg.cc * testsuite/24_iterators/operations/prev_neg.cc * testsuite/ext/type_traits/add_unsigned_floating_neg.cc * testsuite/ext/type_traits/add_unsigned_integer_neg.cc * testsuite/ext/type_traits/remove_unsigned_floating_neg.cc * testsuite/ext/type_traits/remove_unsigned_integer_neg.cc: Adjust line numbers. gcc/testsuite/ChangeLog * g++.dg/analyzer/fanalyzer-show-events-in-system-headers-default.C * g++.dg/analyzer/fanalyzer-show-events-in-system-headers-no.C * g++.dg/diagnostic/disable.C: #define _GLIBCXX_SYSHDR.
Diffstat (limited to 'libstdc++-v3/include/std')
-rw-r--r--libstdc++-v3/include/std/algorithm2
-rw-r--r--libstdc++-v3/include/std/any2
-rw-r--r--libstdc++-v3/include/std/array2
-rw-r--r--libstdc++-v3/include/std/atomic2
-rw-r--r--libstdc++-v3/include/std/barrier2
-rw-r--r--libstdc++-v3/include/std/bit2
-rw-r--r--libstdc++-v3/include/std/bitset2
-rw-r--r--libstdc++-v3/include/std/charconv2
-rw-r--r--libstdc++-v3/include/std/chrono2
-rw-r--r--libstdc++-v3/include/std/codecvt2
-rw-r--r--libstdc++-v3/include/std/complex2
-rw-r--r--libstdc++-v3/include/std/concepts2
-rw-r--r--libstdc++-v3/include/std/condition_variable2
-rw-r--r--libstdc++-v3/include/std/coroutine2
-rw-r--r--libstdc++-v3/include/std/deque2
-rw-r--r--libstdc++-v3/include/std/execution2
-rw-r--r--libstdc++-v3/include/std/expected2
-rw-r--r--libstdc++-v3/include/std/filesystem2
-rw-r--r--libstdc++-v3/include/std/format2
-rw-r--r--libstdc++-v3/include/std/forward_list2
-rw-r--r--libstdc++-v3/include/std/fstream2
-rw-r--r--libstdc++-v3/include/std/functional2
-rw-r--r--libstdc++-v3/include/std/future2
-rw-r--r--libstdc++-v3/include/std/generator2
-rw-r--r--libstdc++-v3/include/std/iomanip2
-rw-r--r--libstdc++-v3/include/std/ios2
-rw-r--r--libstdc++-v3/include/std/iosfwd2
-rw-r--r--libstdc++-v3/include/std/iostream2
-rw-r--r--libstdc++-v3/include/std/istream2
-rw-r--r--libstdc++-v3/include/std/iterator2
-rw-r--r--libstdc++-v3/include/std/latch2
-rw-r--r--libstdc++-v3/include/std/limits2
-rw-r--r--libstdc++-v3/include/std/list2
-rw-r--r--libstdc++-v3/include/std/locale2
-rw-r--r--libstdc++-v3/include/std/map2
-rw-r--r--libstdc++-v3/include/std/memory2
-rw-r--r--libstdc++-v3/include/std/memory_resource2
-rw-r--r--libstdc++-v3/include/std/mutex2
-rw-r--r--libstdc++-v3/include/std/numbers2
-rw-r--r--libstdc++-v3/include/std/numeric2
-rw-r--r--libstdc++-v3/include/std/optional2
-rw-r--r--libstdc++-v3/include/std/ostream2
-rw-r--r--libstdc++-v3/include/std/print2
-rw-r--r--libstdc++-v3/include/std/queue2
-rw-r--r--libstdc++-v3/include/std/random2
-rw-r--r--libstdc++-v3/include/std/ranges2
-rw-r--r--libstdc++-v3/include/std/ratio2
-rw-r--r--libstdc++-v3/include/std/regex2
-rw-r--r--libstdc++-v3/include/std/scoped_allocator2
-rw-r--r--libstdc++-v3/include/std/semaphore2
-rw-r--r--libstdc++-v3/include/std/set2
-rw-r--r--libstdc++-v3/include/std/shared_mutex2
-rw-r--r--libstdc++-v3/include/std/span2
-rw-r--r--libstdc++-v3/include/std/spanstream2
-rw-r--r--libstdc++-v3/include/std/sstream2
-rw-r--r--libstdc++-v3/include/std/stack2
-rw-r--r--libstdc++-v3/include/std/stacktrace2
-rw-r--r--libstdc++-v3/include/std/stdexcept2
-rw-r--r--libstdc++-v3/include/std/streambuf2
-rw-r--r--libstdc++-v3/include/std/string2
-rw-r--r--libstdc++-v3/include/std/string_view2
-rw-r--r--libstdc++-v3/include/std/syncstream2
-rw-r--r--libstdc++-v3/include/std/system_error2
-rw-r--r--libstdc++-v3/include/std/text_encoding2
-rw-r--r--libstdc++-v3/include/std/thread2
-rw-r--r--libstdc++-v3/include/std/tuple2
-rw-r--r--libstdc++-v3/include/std/type_traits2
-rw-r--r--libstdc++-v3/include/std/typeindex2
-rw-r--r--libstdc++-v3/include/std/unordered_map2
-rw-r--r--libstdc++-v3/include/std/unordered_set2
-rw-r--r--libstdc++-v3/include/std/utility2
-rw-r--r--libstdc++-v3/include/std/valarray2
-rw-r--r--libstdc++-v3/include/std/variant2
-rw-r--r--libstdc++-v3/include/std/vector2
-rw-r--r--libstdc++-v3/include/std/version2
75 files changed, 150 insertions, 0 deletions
diff --git a/libstdc++-v3/include/std/algorithm b/libstdc++-v3/include/std/algorithm
index b410e7c..0b1b72b 100644
--- a/libstdc++-v3/include/std/algorithm
+++ b/libstdc++-v3/include/std/algorithm
@@ -55,7 +55,9 @@
#ifndef _GLIBCXX_ALGORITHM
#define _GLIBCXX_ALGORITHM 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <bits/stl_algobase.h>
#include <bits/stl_algo.h>
diff --git a/libstdc++-v3/include/std/any b/libstdc++-v3/include/std/any
index d24260e..812d801 100644
--- a/libstdc++-v3/include/std/any
+++ b/libstdc++-v3/include/std/any
@@ -29,7 +29,9 @@
#ifndef _GLIBCXX_ANY
#define _GLIBCXX_ANY 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#define __glibcxx_want_any
#include <bits/version.h>
diff --git a/libstdc++-v3/include/std/array b/libstdc++-v3/include/std/array
index 8710bf7..172b320 100644
--- a/libstdc++-v3/include/std/array
+++ b/libstdc++-v3/include/std/array
@@ -29,7 +29,9 @@
#ifndef _GLIBCXX_ARRAY
#define _GLIBCXX_ARRAY 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#if __cplusplus < 201103L
# include <bits/c++0x_warning.h>
diff --git a/libstdc++-v3/include/std/atomic b/libstdc++-v3/include/std/atomic
index 36ff89a..37fd710 100644
--- a/libstdc++-v3/include/std/atomic
+++ b/libstdc++-v3/include/std/atomic
@@ -32,7 +32,9 @@
#ifndef _GLIBCXX_ATOMIC
#define _GLIBCXX_ATOMIC 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#if __cplusplus < 201103L
# include <bits/c++0x_warning.h>
diff --git a/libstdc++-v3/include/std/barrier b/libstdc++-v3/include/std/barrier
index ccc89fb..f926651 100644
--- a/libstdc++-v3/include/std/barrier
+++ b/libstdc++-v3/include/std/barrier
@@ -38,7 +38,9 @@
#ifndef _GLIBCXX_BARRIER
#define _GLIBCXX_BARRIER 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <bits/requires_hosted.h> // threading primitive
diff --git a/libstdc++-v3/include/std/bit b/libstdc++-v3/include/std/bit
index 3e07dd7..a5d50a4 100644
--- a/libstdc++-v3/include/std/bit
+++ b/libstdc++-v3/include/std/bit
@@ -29,7 +29,9 @@
#ifndef _GLIBCXX_BIT
#define _GLIBCXX_BIT 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#if __cplusplus >= 201402L
diff --git a/libstdc++-v3/include/std/bitset b/libstdc++-v3/include/std/bitset
index 2e82a0e..1d0483f 100644
--- a/libstdc++-v3/include/std/bitset
+++ b/libstdc++-v3/include/std/bitset
@@ -42,7 +42,9 @@
#ifndef _GLIBCXX_BITSET
#define _GLIBCXX_BITSET 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <bits/functexcept.h> // For invalid_argument, out_of_range,
// overflow_error
diff --git a/libstdc++-v3/include/std/charconv b/libstdc++-v3/include/std/charconv
index de67139..5a23ab6 100644
--- a/libstdc++-v3/include/std/charconv
+++ b/libstdc++-v3/include/std/charconv
@@ -29,7 +29,9 @@
#ifndef _GLIBCXX_CHARCONV
#define _GLIBCXX_CHARCONV 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wpedantic" // __int128
diff --git a/libstdc++-v3/include/std/chrono b/libstdc++-v3/include/std/chrono
index aa78254..013b5f7 100644
--- a/libstdc++-v3/include/std/chrono
+++ b/libstdc++-v3/include/std/chrono
@@ -30,7 +30,9 @@
#ifndef _GLIBCXX_CHRONO
#define _GLIBCXX_CHRONO 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#ifdef _GLIBCXX_NO_FREESTANDING_CHRONO
# include <bits/requires_hosted.h> // for <ctime> and clocks
diff --git a/libstdc++-v3/include/std/codecvt b/libstdc++-v3/include/std/codecvt
index 311f902..863bb6f 100644
--- a/libstdc++-v3/include/std/codecvt
+++ b/libstdc++-v3/include/std/codecvt
@@ -31,7 +31,9 @@
#ifndef _GLIBCXX_CODECVT
#define _GLIBCXX_CODECVT 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#if __cplusplus < 201103L
# include <bits/c++0x_warning.h>
diff --git a/libstdc++-v3/include/std/complex b/libstdc++-v3/include/std/complex
index c688d0c..5bc6618 100644
--- a/libstdc++-v3/include/std/complex
+++ b/libstdc++-v3/include/std/complex
@@ -36,7 +36,9 @@
#ifndef _GLIBCXX_COMPLEX
#define _GLIBCXX_COMPLEX 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wc++11-extensions" // extern template
diff --git a/libstdc++-v3/include/std/concepts b/libstdc++-v3/include/std/concepts
index 4f3e059..28ef37e 100644
--- a/libstdc++-v3/include/std/concepts
+++ b/libstdc++-v3/include/std/concepts
@@ -30,7 +30,9 @@
#ifndef _GLIBCXX_CONCEPTS
#define _GLIBCXX_CONCEPTS 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#define __glibcxx_want_concepts
#include <bits/version.h>
diff --git a/libstdc++-v3/include/std/condition_variable b/libstdc++-v3/include/std/condition_variable
index c8a68d3..616f2c3 100644
--- a/libstdc++-v3/include/std/condition_variable
+++ b/libstdc++-v3/include/std/condition_variable
@@ -29,7 +29,9 @@
#ifndef _GLIBCXX_CONDITION_VARIABLE
#define _GLIBCXX_CONDITION_VARIABLE 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <bits/requires_hosted.h> // threading primitive
diff --git a/libstdc++-v3/include/std/coroutine b/libstdc++-v3/include/std/coroutine
index 30b4d33..7ac1c8c 100644
--- a/libstdc++-v3/include/std/coroutine
+++ b/libstdc++-v3/include/std/coroutine
@@ -29,7 +29,9 @@
#ifndef _GLIBCXX_COROUTINE
#define _GLIBCXX_COROUTINE 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wc++17-extensions"
diff --git a/libstdc++-v3/include/std/deque b/libstdc++-v3/include/std/deque
index e45dd06..33396d1 100644
--- a/libstdc++-v3/include/std/deque
+++ b/libstdc++-v3/include/std/deque
@@ -55,7 +55,9 @@
#ifndef _GLIBCXX_DEQUE
#define _GLIBCXX_DEQUE 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <bits/requires_hosted.h> // containers are hosted only
diff --git a/libstdc++-v3/include/std/execution b/libstdc++-v3/include/std/execution
index fc2cb24..7ac0b70 100644
--- a/libstdc++-v3/include/std/execution
+++ b/libstdc++-v3/include/std/execution
@@ -25,7 +25,9 @@
#ifndef _GLIBCXX_EXECUTION
#define _GLIBCXX_EXECUTION 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <bits/requires_hosted.h> // execution policies are hosted only
diff --git a/libstdc++-v3/include/std/expected b/libstdc++-v3/include/std/expected
index b8217e5..9e92339 100644
--- a/libstdc++-v3/include/std/expected
+++ b/libstdc++-v3/include/std/expected
@@ -29,7 +29,9 @@
#ifndef _GLIBCXX_EXPECTED
#define _GLIBCXX_EXPECTED
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#define __glibcxx_want_expected
#define __glibcxx_want_freestanding_expected
diff --git a/libstdc++-v3/include/std/filesystem b/libstdc++-v3/include/std/filesystem
index acdcddd..222b529 100644
--- a/libstdc++-v3/include/std/filesystem
+++ b/libstdc++-v3/include/std/filesystem
@@ -30,7 +30,9 @@
#ifndef _GLIBCXX_FILESYSTEM
#define _GLIBCXX_FILESYSTEM 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <bits/requires_hosted.h>
diff --git a/libstdc++-v3/include/std/format b/libstdc++-v3/include/std/format
index 1e9a837..6313d08 100644
--- a/libstdc++-v3/include/std/format
+++ b/libstdc++-v3/include/std/format
@@ -29,7 +29,9 @@
#ifndef _GLIBCXX_FORMAT
#define _GLIBCXX_FORMAT 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <bits/requires_hosted.h> // for std::string
diff --git a/libstdc++-v3/include/std/forward_list b/libstdc++-v3/include/std/forward_list
index 5341d1a..851c253 100644
--- a/libstdc++-v3/include/std/forward_list
+++ b/libstdc++-v3/include/std/forward_list
@@ -29,7 +29,9 @@
#ifndef _GLIBCXX_FORWARD_LIST
#define _GLIBCXX_FORWARD_LIST 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <bits/requires_hosted.h> // containers
diff --git a/libstdc++-v3/include/std/fstream b/libstdc++-v3/include/std/fstream
index 1008a27..665a17a 100644
--- a/libstdc++-v3/include/std/fstream
+++ b/libstdc++-v3/include/std/fstream
@@ -33,7 +33,9 @@
#ifndef _GLIBCXX_FSTREAM
#define _GLIBCXX_FSTREAM 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <bits/requires_hosted.h> // iostreams
diff --git a/libstdc++-v3/include/std/functional b/libstdc++-v3/include/std/functional
index 7788a96..743defc 100644
--- a/libstdc++-v3/include/std/functional
+++ b/libstdc++-v3/include/std/functional
@@ -43,7 +43,9 @@
#ifndef _GLIBCXX_FUNCTIONAL
#define _GLIBCXX_FUNCTIONAL 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <bits/c++config.h>
#include <bits/stl_function.h> // std::equal_to, std::unary_function etc.
diff --git a/libstdc++-v3/include/std/future b/libstdc++-v3/include/std/future
index 6ce7d89..b1e6a53 100644
--- a/libstdc++-v3/include/std/future
+++ b/libstdc++-v3/include/std/future
@@ -29,7 +29,9 @@
#ifndef _GLIBCXX_FUTURE
#define _GLIBCXX_FUTURE 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <bits/requires_hosted.h> // concurrency
diff --git a/libstdc++-v3/include/std/generator b/libstdc++-v3/include/std/generator
index 1d5acc9..0a14e70 100644
--- a/libstdc++-v3/include/std/generator
+++ b/libstdc++-v3/include/std/generator
@@ -30,7 +30,9 @@
#define _GLIBCXX_GENERATOR
#include <ranges>
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <bits/c++config.h>
diff --git a/libstdc++-v3/include/std/iomanip b/libstdc++-v3/include/std/iomanip
index 9d8ecea..7c0feee 100644
--- a/libstdc++-v3/include/std/iomanip
+++ b/libstdc++-v3/include/std/iomanip
@@ -33,7 +33,9 @@
#ifndef _GLIBCXX_IOMANIP
#define _GLIBCXX_IOMANIP 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wc++11-extensions"
diff --git a/libstdc++-v3/include/std/ios b/libstdc++-v3/include/std/ios
index 1aa98c4..ebed2d9 100644
--- a/libstdc++-v3/include/std/ios
+++ b/libstdc++-v3/include/std/ios
@@ -33,7 +33,9 @@
#ifndef _GLIBCXX_IOS
#define _GLIBCXX_IOS 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <bits/requires_hosted.h> // iostreams
diff --git a/libstdc++-v3/include/std/iosfwd b/libstdc++-v3/include/std/iosfwd
index 25eae3c..9051b22 100644
--- a/libstdc++-v3/include/std/iosfwd
+++ b/libstdc++-v3/include/std/iosfwd
@@ -33,7 +33,9 @@
#ifndef _GLIBCXX_IOSFWD
#define _GLIBCXX_IOSFWD 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <bits/requires_hosted.h> // iostreams
diff --git a/libstdc++-v3/include/std/iostream b/libstdc++-v3/include/std/iostream
index 4a6dc58..25064b3 100644
--- a/libstdc++-v3/include/std/iostream
+++ b/libstdc++-v3/include/std/iostream
@@ -33,7 +33,9 @@
#ifndef _GLIBCXX_IOSTREAM
#define _GLIBCXX_IOSTREAM 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <bits/requires_hosted.h> // iostreams
diff --git a/libstdc++-v3/include/std/istream b/libstdc++-v3/include/std/istream
index 730e413..54a130d 100644
--- a/libstdc++-v3/include/std/istream
+++ b/libstdc++-v3/include/std/istream
@@ -33,7 +33,9 @@
#ifndef _GLIBCXX_ISTREAM
#define _GLIBCXX_ISTREAM 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <bits/requires_hosted.h> // iostreams
diff --git a/libstdc++-v3/include/std/iterator b/libstdc++-v3/include/std/iterator
index b3a3c35..c98bcf1 100644
--- a/libstdc++-v3/include/std/iterator
+++ b/libstdc++-v3/include/std/iterator
@@ -55,7 +55,9 @@
#ifndef _GLIBCXX_ITERATOR
#define _GLIBCXX_ITERATOR 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <bits/c++config.h>
#include <bits/stl_iterator_base_types.h>
diff --git a/libstdc++-v3/include/std/latch b/libstdc++-v3/include/std/latch
index 7a67de6..146e186 100644
--- a/libstdc++-v3/include/std/latch
+++ b/libstdc++-v3/include/std/latch
@@ -29,7 +29,9 @@
#ifndef _GLIBCXX_LATCH
#define _GLIBCXX_LATCH 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <bits/requires_hosted.h> // concurrency
diff --git a/libstdc++-v3/include/std/limits b/libstdc++-v3/include/std/limits
index b0ab57c..7e040bc 100644
--- a/libstdc++-v3/include/std/limits
+++ b/libstdc++-v3/include/std/limits
@@ -37,7 +37,9 @@
#ifndef _GLIBCXX_NUMERIC_LIMITS
#define _GLIBCXX_NUMERIC_LIMITS 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wpedantic" // Q suffix
diff --git a/libstdc++-v3/include/std/list b/libstdc++-v3/include/std/list
index 7b67ceb..ab5dec8 100644
--- a/libstdc++-v3/include/std/list
+++ b/libstdc++-v3/include/std/list
@@ -55,7 +55,9 @@
#ifndef _GLIBCXX_LIST
#define _GLIBCXX_LIST 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <bits/requires_hosted.h> // containers
diff --git a/libstdc++-v3/include/std/locale b/libstdc++-v3/include/std/locale
index a6808ea..0de8277 100644
--- a/libstdc++-v3/include/std/locale
+++ b/libstdc++-v3/include/std/locale
@@ -33,7 +33,9 @@
#ifndef _GLIBCXX_LOCALE
#define _GLIBCXX_LOCALE 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <bits/requires_hosted.h> // locales
diff --git a/libstdc++-v3/include/std/map b/libstdc++-v3/include/std/map
index 6520d9f..3e05006 100644
--- a/libstdc++-v3/include/std/map
+++ b/libstdc++-v3/include/std/map
@@ -55,7 +55,9 @@
#ifndef _GLIBCXX_MAP
#define _GLIBCXX_MAP 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <bits/requires_hosted.h> // containers
diff --git a/libstdc++-v3/include/std/memory b/libstdc++-v3/include/std/memory
index c984436..ba8e698 100644
--- a/libstdc++-v3/include/std/memory
+++ b/libstdc++-v3/include/std/memory
@@ -44,7 +44,9 @@
#ifndef _GLIBCXX_MEMORY
#define _GLIBCXX_MEMORY 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
/**
* @defgroup memory Memory
diff --git a/libstdc++-v3/include/std/memory_resource b/libstdc++-v3/include/std/memory_resource
index a2ffd84..34a7fb1 100644
--- a/libstdc++-v3/include/std/memory_resource
+++ b/libstdc++-v3/include/std/memory_resource
@@ -32,7 +32,9 @@
#ifndef _GLIBCXX_MEMORY_RESOURCE
#define _GLIBCXX_MEMORY_RESOURCE 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <bits/requires_hosted.h> // polymorphic allocation
diff --git a/libstdc++-v3/include/std/mutex b/libstdc++-v3/include/std/mutex
index 8dd9b23..e0cedc4 100644
--- a/libstdc++-v3/include/std/mutex
+++ b/libstdc++-v3/include/std/mutex
@@ -29,7 +29,9 @@
#ifndef _GLIBCXX_MUTEX
#define _GLIBCXX_MUTEX 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <bits/requires_hosted.h> // concurrency
diff --git a/libstdc++-v3/include/std/numbers b/libstdc++-v3/include/std/numbers
index f04000f1..d813d98 100644
--- a/libstdc++-v3/include/std/numbers
+++ b/libstdc++-v3/include/std/numbers
@@ -29,7 +29,9 @@
#ifndef _GLIBCXX_NUMBERS
#define _GLIBCXX_NUMBERS 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#define __glibcxx_want_math_constants
#include <bits/version.h>
diff --git a/libstdc++-v3/include/std/numeric b/libstdc++-v3/include/std/numeric
index 201bb8e..dd98f40 100644
--- a/libstdc++-v3/include/std/numeric
+++ b/libstdc++-v3/include/std/numeric
@@ -55,7 +55,9 @@
#ifndef _GLIBCXX_NUMERIC
#define _GLIBCXX_NUMERIC 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <bits/c++config.h>
#include <bits/stl_iterator_base_types.h>
diff --git a/libstdc++-v3/include/std/optional b/libstdc++-v3/include/std/optional
index 6a8e76f..2e663d1 100644
--- a/libstdc++-v3/include/std/optional
+++ b/libstdc++-v3/include/std/optional
@@ -30,7 +30,9 @@
#ifndef _GLIBCXX_OPTIONAL
#define _GLIBCXX_OPTIONAL 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#define __glibcxx_want_freestanding_optional
#define __glibcxx_want_optional
diff --git a/libstdc++-v3/include/std/ostream b/libstdc++-v3/include/std/ostream
index 12be6c4..d8462ef 100644
--- a/libstdc++-v3/include/std/ostream
+++ b/libstdc++-v3/include/std/ostream
@@ -33,7 +33,9 @@
#ifndef _GLIBCXX_OSTREAM
#define _GLIBCXX_OSTREAM 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <bits/requires_hosted.h> // iostreams
diff --git a/libstdc++-v3/include/std/print b/libstdc++-v3/include/std/print
index 0c259d0..ea1aaac 100644
--- a/libstdc++-v3/include/std/print
+++ b/libstdc++-v3/include/std/print
@@ -29,7 +29,9 @@
#ifndef _GLIBCXX_PRINT
#define _GLIBCXX_PRINT 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <bits/requires_hosted.h> // for std::format
diff --git a/libstdc++-v3/include/std/queue b/libstdc++-v3/include/std/queue
index 61ea453..e357456 100644
--- a/libstdc++-v3/include/std/queue
+++ b/libstdc++-v3/include/std/queue
@@ -55,7 +55,9 @@
#ifndef _GLIBCXX_QUEUE
#define _GLIBCXX_QUEUE 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <bits/requires_hosted.h> // containers
diff --git a/libstdc++-v3/include/std/random b/libstdc++-v3/include/std/random
index 717e5bb6..907e5bb 100644
--- a/libstdc++-v3/include/std/random
+++ b/libstdc++-v3/include/std/random
@@ -29,7 +29,9 @@
#ifndef _GLIBCXX_RANDOM
#define _GLIBCXX_RANDOM 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <bits/requires_hosted.h> // OS-dependent random
diff --git a/libstdc++-v3/include/std/ranges b/libstdc++-v3/include/std/ranges
index 7169c3a..30f45e0 100644
--- a/libstdc++-v3/include/std/ranges
+++ b/libstdc++-v3/include/std/ranges
@@ -32,7 +32,9 @@
#if __cplusplus > 201703L
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <concepts>
diff --git a/libstdc++-v3/include/std/ratio b/libstdc++-v3/include/std/ratio
index d80a981..aeae5b3 100644
--- a/libstdc++-v3/include/std/ratio
+++ b/libstdc++-v3/include/std/ratio
@@ -30,7 +30,9 @@
#ifndef _GLIBCXX_RATIO
#define _GLIBCXX_RATIO 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#if __cplusplus < 201103L
# include <bits/c++0x_warning.h>
diff --git a/libstdc++-v3/include/std/regex b/libstdc++-v3/include/std/regex
index 76da6882..124eeaa 100644
--- a/libstdc++-v3/include/std/regex
+++ b/libstdc++-v3/include/std/regex
@@ -29,7 +29,9 @@
#ifndef _GLIBCXX_REGEX
#define _GLIBCXX_REGEX 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <bits/requires_hosted.h> // string and container heavy
diff --git a/libstdc++-v3/include/std/scoped_allocator b/libstdc++-v3/include/std/scoped_allocator
index 532a446..11bdcec 100644
--- a/libstdc++-v3/include/std/scoped_allocator
+++ b/libstdc++-v3/include/std/scoped_allocator
@@ -29,7 +29,9 @@
#ifndef _SCOPED_ALLOCATOR
#define _SCOPED_ALLOCATOR 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#if __cplusplus < 201103L
# include <bits/c++0x_warning.h>
diff --git a/libstdc++-v3/include/std/semaphore b/libstdc++-v3/include/std/semaphore
index 75d634d..fab3cdb 100644
--- a/libstdc++-v3/include/std/semaphore
+++ b/libstdc++-v3/include/std/semaphore
@@ -29,7 +29,9 @@
#ifndef _GLIBCXX_SEMAPHORE
#define _GLIBCXX_SEMAPHORE 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <bits/requires_hosted.h> // concurrency
diff --git a/libstdc++-v3/include/std/set b/libstdc++-v3/include/std/set
index 95cc800..eebea61 100644
--- a/libstdc++-v3/include/std/set
+++ b/libstdc++-v3/include/std/set
@@ -55,7 +55,9 @@
#ifndef _GLIBCXX_SET
#define _GLIBCXX_SET 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <bits/requires_hosted.h> // containers
diff --git a/libstdc++-v3/include/std/shared_mutex b/libstdc++-v3/include/std/shared_mutex
index 1b6478f..f1bb5d7 100644
--- a/libstdc++-v3/include/std/shared_mutex
+++ b/libstdc++-v3/include/std/shared_mutex
@@ -29,7 +29,9 @@
#ifndef _GLIBCXX_SHARED_MUTEX
#define _GLIBCXX_SHARED_MUTEX 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <bits/requires_hosted.h> // concurrency
diff --git a/libstdc++-v3/include/std/span b/libstdc++-v3/include/std/span
index b7392a0..f1c19b5 100644
--- a/libstdc++-v3/include/std/span
+++ b/libstdc++-v3/include/std/span
@@ -34,7 +34,9 @@
#ifndef _GLIBCXX_SPAN
#define _GLIBCXX_SPAN 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#define __glibcxx_want_span
#include <bits/version.h>
diff --git a/libstdc++-v3/include/std/spanstream b/libstdc++-v3/include/std/spanstream
index 1f2d78b..b86bd61 100644
--- a/libstdc++-v3/include/std/spanstream
+++ b/libstdc++-v3/include/std/spanstream
@@ -29,7 +29,9 @@
#ifndef _GLIBCXX_SPANSTREAM
#define _GLIBCXX_SPANSTREAM 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <bits/requires_hosted.h> // iostreams
diff --git a/libstdc++-v3/include/std/sstream b/libstdc++-v3/include/std/sstream
index dda7096..fd24f65 100644
--- a/libstdc++-v3/include/std/sstream
+++ b/libstdc++-v3/include/std/sstream
@@ -33,7 +33,9 @@
#ifndef _GLIBCXX_SSTREAM
#define _GLIBCXX_SSTREAM 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <bits/requires_hosted.h> // iostream
diff --git a/libstdc++-v3/include/std/stack b/libstdc++-v3/include/std/stack
index c5b4a93..afdcbae 100644
--- a/libstdc++-v3/include/std/stack
+++ b/libstdc++-v3/include/std/stack
@@ -55,7 +55,9 @@
#ifndef _GLIBCXX_STACK
#define _GLIBCXX_STACK 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <bits/requires_hosted.h> // containers
diff --git a/libstdc++-v3/include/std/stacktrace b/libstdc++-v3/include/std/stacktrace
index cdd1276..de74460 100644
--- a/libstdc++-v3/include/std/stacktrace
+++ b/libstdc++-v3/include/std/stacktrace
@@ -24,7 +24,9 @@
#ifndef _GLIBCXX_STACKTRACE
#define _GLIBCXX_STACKTRACE 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <bits/requires_hosted.h> // std::string bound
diff --git a/libstdc++-v3/include/std/stdexcept b/libstdc++-v3/include/std/stdexcept
index b55c19b..e61a744 100644
--- a/libstdc++-v3/include/std/stdexcept
+++ b/libstdc++-v3/include/std/stdexcept
@@ -33,7 +33,9 @@
#ifndef _GLIBCXX_STDEXCEPT
#define _GLIBCXX_STDEXCEPT 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <exception>
#include <string>
diff --git a/libstdc++-v3/include/std/streambuf b/libstdc++-v3/include/std/streambuf
index 2387846..9793084 100644
--- a/libstdc++-v3/include/std/streambuf
+++ b/libstdc++-v3/include/std/streambuf
@@ -33,7 +33,9 @@
#ifndef _GLIBXX_STREAMBUF
#define _GLIBXX_STREAMBUF 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <bits/requires_hosted.h> // iostreams
diff --git a/libstdc++-v3/include/std/string b/libstdc++-v3/include/std/string
index 44a39da..fd69e9c 100644
--- a/libstdc++-v3/include/std/string
+++ b/libstdc++-v3/include/std/string
@@ -33,7 +33,9 @@
#ifndef _GLIBCXX_STRING
#define _GLIBCXX_STRING 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <bits/requires_hosted.h> // containers
diff --git a/libstdc++-v3/include/std/string_view b/libstdc++-v3/include/std/string_view
index 740aa93..96350f9 100644
--- a/libstdc++-v3/include/std/string_view
+++ b/libstdc++-v3/include/std/string_view
@@ -33,7 +33,9 @@
#ifndef _GLIBCXX_STRING_VIEW
#define _GLIBCXX_STRING_VIEW 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#define __glibcxx_want_constexpr_char_traits
#define __glibcxx_want_constexpr_string_view
diff --git a/libstdc++-v3/include/std/syncstream b/libstdc++-v3/include/std/syncstream
index 08a901b..c4123f6 100644
--- a/libstdc++-v3/include/std/syncstream
+++ b/libstdc++-v3/include/std/syncstream
@@ -29,7 +29,9 @@
#ifndef _GLIBCXX_SYNCSTREAM
#define _GLIBCXX_SYNCSTREAM 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <bits/requires_hosted.h> // iostreams
diff --git a/libstdc++-v3/include/std/system_error b/libstdc++-v3/include/std/system_error
index 8dce096..e42cdfc 100644
--- a/libstdc++-v3/include/std/system_error
+++ b/libstdc++-v3/include/std/system_error
@@ -29,7 +29,9 @@
#ifndef _GLIBCXX_SYSTEM_ERROR
#define _GLIBCXX_SYSTEM_ERROR 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <bits/requires_hosted.h> // OS-dependent
diff --git a/libstdc++-v3/include/std/text_encoding b/libstdc++-v3/include/std/text_encoding
index 49405a2..48742dc 100644
--- a/libstdc++-v3/include/std/text_encoding
+++ b/libstdc++-v3/include/std/text_encoding
@@ -29,7 +29,9 @@
#ifndef _GLIBCXX_TEXT_ENCODING
#define _GLIBCXX_TEXT_ENCODING
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <bits/requires_hosted.h>
diff --git a/libstdc++-v3/include/std/thread b/libstdc++-v3/include/std/thread
index e994d68..d8c5410 100644
--- a/libstdc++-v3/include/std/thread
+++ b/libstdc++-v3/include/std/thread
@@ -29,7 +29,9 @@
#ifndef _GLIBCXX_THREAD
#define _GLIBCXX_THREAD 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <bits/requires_hosted.h> // concurrency
diff --git a/libstdc++-v3/include/std/tuple b/libstdc++-v3/include/std/tuple
index 70cf4db..0bd5439 100644
--- a/libstdc++-v3/include/std/tuple
+++ b/libstdc++-v3/include/std/tuple
@@ -29,7 +29,9 @@
#ifndef _GLIBCXX_TUPLE
#define _GLIBCXX_TUPLE 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#if __cplusplus < 201103L
# include <bits/c++0x_warning.h>
diff --git a/libstdc++-v3/include/std/type_traits b/libstdc++-v3/include/std/type_traits
index 7415e20..6e67780 100644
--- a/libstdc++-v3/include/std/type_traits
+++ b/libstdc++-v3/include/std/type_traits
@@ -29,7 +29,9 @@
#ifndef _GLIBCXX_TYPE_TRAITS
#define _GLIBCXX_TYPE_TRAITS 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#if __cplusplus < 201103L
# include <bits/c++0x_warning.h>
diff --git a/libstdc++-v3/include/std/typeindex b/libstdc++-v3/include/std/typeindex
index 894b133..885b33a 100644
--- a/libstdc++-v3/include/std/typeindex
+++ b/libstdc++-v3/include/std/typeindex
@@ -29,7 +29,9 @@
#ifndef _GLIBCXX_TYPEINDEX
#define _GLIBCXX_TYPEINDEX 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#if __cplusplus < 201103L
# include <bits/c++0x_warning.h>
diff --git a/libstdc++-v3/include/std/unordered_map b/libstdc++-v3/include/std/unordered_map
index f9a948c..d201903 100644
--- a/libstdc++-v3/include/std/unordered_map
+++ b/libstdc++-v3/include/std/unordered_map
@@ -29,7 +29,9 @@
#ifndef _GLIBCXX_UNORDERED_MAP
#define _GLIBCXX_UNORDERED_MAP 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <bits/requires_hosted.h> // container
diff --git a/libstdc++-v3/include/std/unordered_set b/libstdc++-v3/include/std/unordered_set
index aa5b702..cfcb6f4 100644
--- a/libstdc++-v3/include/std/unordered_set
+++ b/libstdc++-v3/include/std/unordered_set
@@ -29,7 +29,9 @@
#ifndef _GLIBCXX_UNORDERED_SET
#define _GLIBCXX_UNORDERED_SET 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <bits/requires_hosted.h> // containers
diff --git a/libstdc++-v3/include/std/utility b/libstdc++-v3/include/std/utility
index 5646716..877e9a8 100644
--- a/libstdc++-v3/include/std/utility
+++ b/libstdc++-v3/include/std/utility
@@ -55,7 +55,9 @@
#ifndef _GLIBCXX_UTILITY
#define _GLIBCXX_UTILITY 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
/**
* @defgroup utilities Utilities
diff --git a/libstdc++-v3/include/std/valarray b/libstdc++-v3/include/std/valarray
index 46cd57e..5ff44a3 100644
--- a/libstdc++-v3/include/std/valarray
+++ b/libstdc++-v3/include/std/valarray
@@ -31,7 +31,9 @@
#ifndef _GLIBCXX_VALARRAY
#define _GLIBCXX_VALARRAY 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <bits/requires_hosted.h> // <cmath> dependant
diff --git a/libstdc++-v3/include/std/variant b/libstdc++-v3/include/std/variant
index 08c5395..cf53212 100644
--- a/libstdc++-v3/include/std/variant
+++ b/libstdc++-v3/include/std/variant
@@ -29,7 +29,9 @@
#ifndef _GLIBCXX_VARIANT
#define _GLIBCXX_VARIANT 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#define __glibcxx_want_freestanding_variant
#define __glibcxx_want_variant
diff --git a/libstdc++-v3/include/std/vector b/libstdc++-v3/include/std/vector
index a9894d7..705bcdc 100644
--- a/libstdc++-v3/include/std/vector
+++ b/libstdc++-v3/include/std/vector
@@ -55,7 +55,9 @@
#ifndef _GLIBCXX_VECTOR
#define _GLIBCXX_VECTOR 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <bits/requires_hosted.h> // container
diff --git a/libstdc++-v3/include/std/version b/libstdc++-v3/include/std/version
index 47c10d6..3c6e5b1 100644
--- a/libstdc++-v3/include/std/version
+++ b/libstdc++-v3/include/std/version
@@ -30,7 +30,9 @@
#ifndef _GLIBCXX_VERSION_INCLUDED
#define _GLIBCXX_VERSION_INCLUDED
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#define __glibcxx_want_all
#include <bits/version.h>