aboutsummaryrefslogtreecommitdiff
path: root/libstdc++-v3
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
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')
-rw-r--r--libstdc++-v3/acinclude.m42
-rwxr-xr-xlibstdc++-v3/configure2
-rw-r--r--libstdc++-v3/include/bits/algorithmfwd.h2
-rw-r--r--libstdc++-v3/include/bits/atomic_base.h2
-rw-r--r--libstdc++-v3/include/bits/atomic_futex.h2
-rw-r--r--libstdc++-v3/include/bits/atomic_timed_wait.h2
-rw-r--r--libstdc++-v3/include/bits/atomic_wait.h2
-rw-r--r--libstdc++-v3/include/bits/basic_ios.h2
-rw-r--r--libstdc++-v3/include/bits/basic_ios.tcc2
-rw-r--r--libstdc++-v3/include/bits/basic_string.h2
-rw-r--r--libstdc++-v3/include/bits/basic_string.tcc2
-rw-r--r--libstdc++-v3/include/bits/boost_concept_check.h2
-rw-r--r--libstdc++-v3/include/bits/c++config2
-rw-r--r--libstdc++-v3/include/bits/char_traits.h2
-rw-r--r--libstdc++-v3/include/bits/charconv.h2
-rw-r--r--libstdc++-v3/include/bits/chrono.h2
-rw-r--r--libstdc++-v3/include/bits/chrono_io.h2
-rw-r--r--libstdc++-v3/include/bits/codecvt.h2
-rw-r--r--libstdc++-v3/include/bits/concept_check.h2
-rw-r--r--libstdc++-v3/include/bits/cpp_type_traits.h2
-rw-r--r--libstdc++-v3/include/bits/elements_of.h2
-rw-r--r--libstdc++-v3/include/bits/enable_special_members.h2
-rw-r--r--libstdc++-v3/include/bits/erase_if.h2
-rw-r--r--libstdc++-v3/include/bits/forward_list.h2
-rw-r--r--libstdc++-v3/include/bits/fstream.tcc2
-rw-r--r--libstdc++-v3/include/bits/functional_hash.h2
-rw-r--r--libstdc++-v3/include/bits/gslice.h2
-rw-r--r--libstdc++-v3/include/bits/gslice_array.h2
-rw-r--r--libstdc++-v3/include/bits/hashtable.h2
-rw-r--r--libstdc++-v3/include/bits/indirect_array.h2
-rw-r--r--libstdc++-v3/include/bits/invoke.h2
-rw-r--r--libstdc++-v3/include/bits/ios_base.h2
-rw-r--r--libstdc++-v3/include/bits/istream.tcc2
-rw-r--r--libstdc++-v3/include/bits/iterator_concepts.h2
-rw-r--r--libstdc++-v3/include/bits/locale_classes.h2
-rw-r--r--libstdc++-v3/include/bits/locale_classes.tcc3
-rw-r--r--libstdc++-v3/include/bits/locale_facets.h2
-rw-r--r--libstdc++-v3/include/bits/locale_facets.tcc3
-rw-r--r--libstdc++-v3/include/bits/locale_facets_nonio.h2
-rw-r--r--libstdc++-v3/include/bits/locale_facets_nonio.tcc2
-rw-r--r--libstdc++-v3/include/bits/localefwd.h2
-rw-r--r--libstdc++-v3/include/bits/mask_array.h2
-rw-r--r--libstdc++-v3/include/bits/max_size_type.h2
-rw-r--r--libstdc++-v3/include/bits/memory_resource.h2
-rw-r--r--libstdc++-v3/include/bits/memoryfwd.h2
-rw-r--r--libstdc++-v3/include/bits/move_only_function.h2
-rw-r--r--libstdc++-v3/include/bits/node_handle.h2
-rw-r--r--libstdc++-v3/include/bits/ostream.tcc3
-rw-r--r--libstdc++-v3/include/bits/ostream_insert.h2
-rw-r--r--libstdc++-v3/include/bits/out_ptr.h2
-rw-r--r--libstdc++-v3/include/bits/parse_numbers.h2
-rw-r--r--libstdc++-v3/include/bits/postypes.h2
-rw-r--r--libstdc++-v3/include/bits/quoted_string.h2
-rw-r--r--libstdc++-v3/include/bits/range_access.h2
-rw-r--r--libstdc++-v3/include/bits/ranges_base.h2
-rw-r--r--libstdc++-v3/include/bits/refwrap.h2
-rw-r--r--libstdc++-v3/include/bits/sat_arith.h2
-rw-r--r--libstdc++-v3/include/bits/semaphore_base.h2
-rw-r--r--libstdc++-v3/include/bits/slice_array.h2
-rw-r--r--libstdc++-v3/include/bits/sstream.tcc3
-rw-r--r--libstdc++-v3/include/bits/std_abs.h2
-rw-r--r--libstdc++-v3/include/bits/std_function.h2
-rw-r--r--libstdc++-v3/include/bits/std_mutex.h2
-rw-r--r--libstdc++-v3/include/bits/std_thread.h2
-rw-r--r--libstdc++-v3/include/bits/stl_iterator_base_funcs.h2
-rw-r--r--libstdc++-v3/include/bits/stl_iterator_base_types.h2
-rw-r--r--libstdc++-v3/include/bits/stl_tree.h2
-rw-r--r--libstdc++-v3/include/bits/stream_iterator.h2
-rw-r--r--libstdc++-v3/include/bits/streambuf.tcc2
-rw-r--r--libstdc++-v3/include/bits/streambuf_iterator.h2
-rw-r--r--libstdc++-v3/include/bits/string_view.tcc2
-rw-r--r--libstdc++-v3/include/bits/stringfwd.h2
-rw-r--r--libstdc++-v3/include/bits/this_thread_sleep.h2
-rw-r--r--libstdc++-v3/include/bits/unique_lock.h2
-rw-r--r--libstdc++-v3/include/bits/uses_allocator_args.h2
-rw-r--r--libstdc++-v3/include/bits/utility.h2
-rw-r--r--libstdc++-v3/include/bits/valarray_after.h2
-rw-r--r--libstdc++-v3/include/bits/valarray_array.h2
-rw-r--r--libstdc++-v3/include/bits/valarray_before.h2
-rw-r--r--libstdc++-v3/include/bits/version.h2
-rw-r--r--libstdc++-v3/include/bits/version.tpl2
-rw-r--r--libstdc++-v3/include/c/cassert2
-rw-r--r--libstdc++-v3/include/c/cctype2
-rw-r--r--libstdc++-v3/include/c/cerrno2
-rw-r--r--libstdc++-v3/include/c/cfloat2
-rw-r--r--libstdc++-v3/include/c/ciso6462
-rw-r--r--libstdc++-v3/include/c/climits2
-rw-r--r--libstdc++-v3/include/c/clocale2
-rw-r--r--libstdc++-v3/include/c/cmath2
-rw-r--r--libstdc++-v3/include/c/csetjmp2
-rw-r--r--libstdc++-v3/include/c/csignal2
-rw-r--r--libstdc++-v3/include/c/cstdarg2
-rw-r--r--libstdc++-v3/include/c/cstddef2
-rw-r--r--libstdc++-v3/include/c/cstdio2
-rw-r--r--libstdc++-v3/include/c/cstdlib2
-rw-r--r--libstdc++-v3/include/c/cstring2
-rw-r--r--libstdc++-v3/include/c/ctime2
-rw-r--r--libstdc++-v3/include/c/cuchar2
-rw-r--r--libstdc++-v3/include/c/cwchar2
-rw-r--r--libstdc++-v3/include/c/cwctype2
-rw-r--r--libstdc++-v3/include/c_compatibility/fenv.h2
-rw-r--r--libstdc++-v3/include/c_compatibility/inttypes.h2
-rw-r--r--libstdc++-v3/include/c_compatibility/stdint.h2
-rw-r--r--libstdc++-v3/include/c_global/cassert2
-rw-r--r--libstdc++-v3/include/c_global/ccomplex2
-rw-r--r--libstdc++-v3/include/c_global/cctype2
-rw-r--r--libstdc++-v3/include/c_global/cerrno2
-rw-r--r--libstdc++-v3/include/c_global/cfenv2
-rw-r--r--libstdc++-v3/include/c_global/cfloat2
-rw-r--r--libstdc++-v3/include/c_global/cinttypes2
-rw-r--r--libstdc++-v3/include/c_global/ciso6463
-rw-r--r--libstdc++-v3/include/c_global/climits2
-rw-r--r--libstdc++-v3/include/c_global/clocale2
-rw-r--r--libstdc++-v3/include/c_global/cmath2
-rw-r--r--libstdc++-v3/include/c_global/csetjmp2
-rw-r--r--libstdc++-v3/include/c_global/csignal2
-rw-r--r--libstdc++-v3/include/c_global/cstdalign2
-rw-r--r--libstdc++-v3/include/c_global/cstdarg2
-rw-r--r--libstdc++-v3/include/c_global/cstdbool2
-rw-r--r--libstdc++-v3/include/c_global/cstddef2
-rw-r--r--libstdc++-v3/include/c_global/cstdint2
-rw-r--r--libstdc++-v3/include/c_global/cstdio2
-rw-r--r--libstdc++-v3/include/c_global/cstdlib2
-rw-r--r--libstdc++-v3/include/c_global/cstring2
-rw-r--r--libstdc++-v3/include/c_global/ctgmath2
-rw-r--r--libstdc++-v3/include/c_global/ctime2
-rw-r--r--libstdc++-v3/include/c_global/cuchar2
-rw-r--r--libstdc++-v3/include/c_global/cwchar2
-rw-r--r--libstdc++-v3/include/c_global/cwctype2
-rw-r--r--libstdc++-v3/include/c_std/cassert2
-rw-r--r--libstdc++-v3/include/c_std/cctype2
-rw-r--r--libstdc++-v3/include/c_std/cerrno2
-rw-r--r--libstdc++-v3/include/c_std/cfloat2
-rw-r--r--libstdc++-v3/include/c_std/ciso6462
-rw-r--r--libstdc++-v3/include/c_std/climits2
-rw-r--r--libstdc++-v3/include/c_std/clocale2
-rw-r--r--libstdc++-v3/include/c_std/cmath2
-rw-r--r--libstdc++-v3/include/c_std/csetjmp2
-rw-r--r--libstdc++-v3/include/c_std/csignal2
-rw-r--r--libstdc++-v3/include/c_std/cstdarg2
-rw-r--r--libstdc++-v3/include/c_std/cstddef2
-rw-r--r--libstdc++-v3/include/c_std/cstdio2
-rw-r--r--libstdc++-v3/include/c_std/cstdlib2
-rw-r--r--libstdc++-v3/include/c_std/cstring2
-rw-r--r--libstdc++-v3/include/c_std/ctime2
-rw-r--r--libstdc++-v3/include/c_std/cuchar2
-rw-r--r--libstdc++-v3/include/c_std/cwchar2
-rw-r--r--libstdc++-v3/include/c_std/cwctype2
-rw-r--r--libstdc++-v3/include/debug/array2
-rw-r--r--libstdc++-v3/include/debug/bitset2
-rw-r--r--libstdc++-v3/include/debug/deque2
-rw-r--r--libstdc++-v3/include/debug/forward_list2
-rw-r--r--libstdc++-v3/include/debug/list2
-rw-r--r--libstdc++-v3/include/debug/map2
-rw-r--r--libstdc++-v3/include/debug/set2
-rw-r--r--libstdc++-v3/include/debug/string2
-rw-r--r--libstdc++-v3/include/debug/unordered_map2
-rw-r--r--libstdc++-v3/include/debug/unordered_set2
-rw-r--r--libstdc++-v3/include/debug/vector2
-rw-r--r--libstdc++-v3/include/decimal/decimal2
-rw-r--r--libstdc++-v3/include/decimal/decimal.h2
-rw-r--r--libstdc++-v3/include/experimental/algorithm2
-rw-r--r--libstdc++-v3/include/experimental/any2
-rw-r--r--libstdc++-v3/include/experimental/array2
-rw-r--r--libstdc++-v3/include/experimental/bits/net.h2
-rw-r--r--libstdc++-v3/include/experimental/bits/shared_ptr.h2
-rw-r--r--libstdc++-v3/include/experimental/bits/string_view.tcc2
-rw-r--r--libstdc++-v3/include/experimental/buffer2
-rw-r--r--libstdc++-v3/include/experimental/chrono2
-rw-r--r--libstdc++-v3/include/experimental/contract2
-rw-r--r--libstdc++-v3/include/experimental/deque2
-rw-r--r--libstdc++-v3/include/experimental/executor2
-rw-r--r--libstdc++-v3/include/experimental/filesystem2
-rw-r--r--libstdc++-v3/include/experimental/forward_list2
-rw-r--r--libstdc++-v3/include/experimental/functional2
-rw-r--r--libstdc++-v3/include/experimental/internet2
-rw-r--r--libstdc++-v3/include/experimental/io_context2
-rw-r--r--libstdc++-v3/include/experimental/iterator2
-rw-r--r--libstdc++-v3/include/experimental/list2
-rw-r--r--libstdc++-v3/include/experimental/map2
-rw-r--r--libstdc++-v3/include/experimental/memory2
-rw-r--r--libstdc++-v3/include/experimental/memory_resource2
-rw-r--r--libstdc++-v3/include/experimental/net2
-rw-r--r--libstdc++-v3/include/experimental/netfwd2
-rw-r--r--libstdc++-v3/include/experimental/numeric2
-rw-r--r--libstdc++-v3/include/experimental/propagate_const2
-rw-r--r--libstdc++-v3/include/experimental/ratio2
-rw-r--r--libstdc++-v3/include/experimental/regex2
-rw-r--r--libstdc++-v3/include/experimental/scope2
-rw-r--r--libstdc++-v3/include/experimental/set2
-rw-r--r--libstdc++-v3/include/experimental/socket2
-rw-r--r--libstdc++-v3/include/experimental/string2
-rw-r--r--libstdc++-v3/include/experimental/string_view2
-rw-r--r--libstdc++-v3/include/experimental/synchronized_value2
-rw-r--r--libstdc++-v3/include/experimental/system_error2
-rw-r--r--libstdc++-v3/include/experimental/timer2
-rw-r--r--libstdc++-v3/include/experimental/tuple2
-rw-r--r--libstdc++-v3/include/experimental/type_traits2
-rw-r--r--libstdc++-v3/include/experimental/unordered_map2
-rw-r--r--libstdc++-v3/include/experimental/unordered_set2
-rw-r--r--libstdc++-v3/include/experimental/vector2
-rw-r--r--libstdc++-v3/include/ext/algorithm2
-rw-r--r--libstdc++-v3/include/ext/aligned_buffer.h2
-rw-r--r--libstdc++-v3/include/ext/alloc_traits.h2
-rw-r--r--libstdc++-v3/include/ext/atomicity.h2
-rw-r--r--libstdc++-v3/include/ext/cmath2
-rw-r--r--libstdc++-v3/include/ext/concurrence.h2
-rw-r--r--libstdc++-v3/include/ext/functional2
-rw-r--r--libstdc++-v3/include/ext/iterator2
-rw-r--r--libstdc++-v3/include/ext/memory2
-rw-r--r--libstdc++-v3/include/ext/numeric2
-rw-r--r--libstdc++-v3/include/ext/numeric_traits.h2
-rw-r--r--libstdc++-v3/include/ext/pb_ds/detail/resize_policy/hash_prime_size_policy_imp.hpp2
-rw-r--r--libstdc++-v3/include/ext/pod_char_traits.h2
-rw-r--r--libstdc++-v3/include/ext/pointer.h2
-rw-r--r--libstdc++-v3/include/ext/random2
-rw-r--r--libstdc++-v3/include/ext/random.tcc2
-rw-r--r--libstdc++-v3/include/ext/rb_tree2
-rw-r--r--libstdc++-v3/include/ext/rope2
-rw-r--r--libstdc++-v3/include/ext/stdio_filebuf.h2
-rw-r--r--libstdc++-v3/include/ext/stdio_sync_filebuf.h2
-rw-r--r--libstdc++-v3/include/ext/string_conversions.h2
-rw-r--r--libstdc++-v3/include/ext/type_traits.h2
-rw-r--r--libstdc++-v3/include/ext/vstring.h2
-rw-r--r--libstdc++-v3/include/ext/vstring.tcc2
-rw-r--r--libstdc++-v3/include/ext/vstring_fwd.h2
-rw-r--r--libstdc++-v3/include/ext/vstring_util.h2
-rw-r--r--libstdc++-v3/include/parallel/algorithm2
-rw-r--r--libstdc++-v3/include/parallel/algorithmfwd.h2
-rw-r--r--libstdc++-v3/include/parallel/numericfwd.h2
-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
-rw-r--r--libstdc++-v3/include/tr1/array2
-rw-r--r--libstdc++-v3/include/tr1/cfenv2
-rw-r--r--libstdc++-v3/include/tr1/cinttypes2
-rw-r--r--libstdc++-v3/include/tr1/cmath2
-rw-r--r--libstdc++-v3/include/tr1/complex2
-rw-r--r--libstdc++-v3/include/tr1/cstdbool2
-rw-r--r--libstdc++-v3/include/tr1/cstdint2
-rw-r--r--libstdc++-v3/include/tr1/cstdio2
-rw-r--r--libstdc++-v3/include/tr1/cstdlib2
-rw-r--r--libstdc++-v3/include/tr1/cwchar2
-rw-r--r--libstdc++-v3/include/tr1/cwctype2
-rw-r--r--libstdc++-v3/include/tr1/functional2
-rw-r--r--libstdc++-v3/include/tr1/functional_hash.h2
-rw-r--r--libstdc++-v3/include/tr1/hashtable.h2
-rw-r--r--libstdc++-v3/include/tr1/memory2
-rw-r--r--libstdc++-v3/include/tr1/random2
-rw-r--r--libstdc++-v3/include/tr1/random.h2
-rw-r--r--libstdc++-v3/include/tr1/regex2
-rw-r--r--libstdc++-v3/include/tr1/tuple2
-rw-r--r--libstdc++-v3/include/tr1/type_traits2
-rw-r--r--libstdc++-v3/include/tr1/unordered_map2
-rw-r--r--libstdc++-v3/include/tr1/unordered_set2
-rw-r--r--libstdc++-v3/include/tr1/utility2
-rw-r--r--libstdc++-v3/include/tr2/bool_set2
-rw-r--r--libstdc++-v3/include/tr2/bool_set.tcc2
-rw-r--r--libstdc++-v3/include/tr2/dynamic_bitset2
-rw-r--r--libstdc++-v3/include/tr2/dynamic_bitset.tcc2
-rw-r--r--libstdc++-v3/include/tr2/type_traits2
-rw-r--r--libstdc++-v3/libsupc++/atomic_lockfree_defines.h2
-rw-r--r--libstdc++-v3/libsupc++/compare2
-rw-r--r--libstdc++-v3/libsupc++/cxxabi.h2
-rw-r--r--libstdc++-v3/libsupc++/cxxabi_forced.h2
-rw-r--r--libstdc++-v3/libsupc++/cxxabi_init_exception.h2
-rw-r--r--libstdc++-v3/libsupc++/exception2
-rw-r--r--libstdc++-v3/libsupc++/exception.h2
-rw-r--r--libstdc++-v3/libsupc++/hash_bytes.h2
-rw-r--r--libstdc++-v3/libsupc++/initializer_list2
-rw-r--r--libstdc++-v3/libsupc++/new2
-rw-r--r--libstdc++-v3/libsupc++/typeinfo2
-rw-r--r--libstdc++-v3/testsuite/20_util/ratio/operations/ops_overflow_neg.cc3
-rw-r--r--libstdc++-v3/testsuite/23_containers/array/tuple_interface/get_neg.cc6
-rw-r--r--libstdc++-v3/testsuite/23_containers/vector/cons/destructible_debug_neg.cc2
-rw-r--r--libstdc++-v3/testsuite/24_iterators/operations/prev_neg.cc2
-rw-r--r--libstdc++-v3/testsuite/ext/type_traits/add_unsigned_floating_neg.cc2
-rw-r--r--libstdc++-v3/testsuite/ext/type_traits/add_unsigned_integer_neg.cc4
-rw-r--r--libstdc++-v3/testsuite/ext/type_traits/remove_unsigned_floating_neg.cc2
-rw-r--r--libstdc++-v3/testsuite/ext/type_traits/remove_unsigned_integer_neg.cc4
352 files changed, 700 insertions, 18 deletions
diff --git a/libstdc++-v3/acinclude.m4 b/libstdc++-v3/acinclude.m4
index 768c299..b3423d7 100644
--- a/libstdc++-v3/acinclude.m4
+++ b/libstdc++-v3/acinclude.m4
@@ -707,7 +707,7 @@ AC_DEFUN([GLIBCXX_EXPORT_FLAGS], [
# OPTIMIZE_CXXFLAGS = -O3 -fstrict-aliasing -fvtable-gc
AC_SUBST(OPTIMIZE_CXXFLAGS)
- WARN_FLAGS="-Wall -Wextra -Wwrite-strings -Wcast-qual -Wabi=19 -Wsystem-headers"
+ WARN_FLAGS="-Wall -Wextra -Wwrite-strings -Wcast-qual -Wabi=19"
AC_SUBST(WARN_FLAGS)
])
diff --git a/libstdc++-v3/configure b/libstdc++-v3/configure
index de05e63..e115ee5 100755
--- a/libstdc++-v3/configure
+++ b/libstdc++-v3/configure
@@ -55720,7 +55720,7 @@ $as_echo "$gxx_include_dir" >&6; }
# OPTIMIZE_CXXFLAGS = -O3 -fstrict-aliasing -fvtable-gc
- WARN_FLAGS="-Wall -Wextra -Wwrite-strings -Wcast-qual -Wabi=19 -Wsystem-headers"
+ WARN_FLAGS="-Wall -Wextra -Wwrite-strings -Wcast-qual -Wabi=19"
diff --git a/libstdc++-v3/include/bits/algorithmfwd.h b/libstdc++-v3/include/bits/algorithmfwd.h
index df14864..0016dcd 100644
--- a/libstdc++-v3/include/bits/algorithmfwd.h
+++ b/libstdc++-v3/include/bits/algorithmfwd.h
@@ -30,7 +30,9 @@
#ifndef _GLIBCXX_ALGORITHMFWD_H
#define _GLIBCXX_ALGORITHMFWD_H 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <bits/c++config.h>
#include <bits/stl_pair.h>
diff --git a/libstdc++-v3/include/bits/atomic_base.h b/libstdc++-v3/include/bits/atomic_base.h
index 7c27bd8..7093d0f 100644
--- a/libstdc++-v3/include/bits/atomic_base.h
+++ b/libstdc++-v3/include/bits/atomic_base.h
@@ -30,7 +30,9 @@
#ifndef _GLIBCXX_ATOMIC_BASE_H
#define _GLIBCXX_ATOMIC_BASE_H 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <bits/c++config.h>
#include <new> // For placement new
diff --git a/libstdc++-v3/include/bits/atomic_futex.h b/libstdc++-v3/include/bits/atomic_futex.h
index dd65417..c7d9046 100644
--- a/libstdc++-v3/include/bits/atomic_futex.h
+++ b/libstdc++-v3/include/bits/atomic_futex.h
@@ -30,7 +30,9 @@
#ifndef _GLIBCXX_ATOMIC_FUTEX_H
#define _GLIBCXX_ATOMIC_FUTEX_H 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <atomic>
#if ! (defined(_GLIBCXX_HAVE_LINUX_FUTEX) && ATOMIC_INT_LOCK_FREE > 1)
diff --git a/libstdc++-v3/include/bits/atomic_timed_wait.h b/libstdc++-v3/include/bits/atomic_timed_wait.h
index 778d286..b1eeb3c 100644
--- a/libstdc++-v3/include/bits/atomic_timed_wait.h
+++ b/libstdc++-v3/include/bits/atomic_timed_wait.h
@@ -30,7 +30,9 @@
#ifndef _GLIBCXX_ATOMIC_TIMED_WAIT_H
#define _GLIBCXX_ATOMIC_TIMED_WAIT_H 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <bits/atomic_wait.h>
diff --git a/libstdc++-v3/include/bits/atomic_wait.h b/libstdc++-v3/include/bits/atomic_wait.h
index f1c183f..e31b535 100644
--- a/libstdc++-v3/include/bits/atomic_wait.h
+++ b/libstdc++-v3/include/bits/atomic_wait.h
@@ -30,7 +30,9 @@
#ifndef _GLIBCXX_ATOMIC_WAIT_H
#define _GLIBCXX_ATOMIC_WAIT_H 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <bits/version.h>
diff --git a/libstdc++-v3/include/bits/basic_ios.h b/libstdc++-v3/include/bits/basic_ios.h
index 2c2334d..a2d8060 100644
--- a/libstdc++-v3/include/bits/basic_ios.h
+++ b/libstdc++-v3/include/bits/basic_ios.h
@@ -30,7 +30,9 @@
#ifndef _BASIC_IOS_H
#define _BASIC_IOS_H 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <bits/localefwd.h>
#include <bits/locale_classes.h>
diff --git a/libstdc++-v3/include/bits/basic_ios.tcc b/libstdc++-v3/include/bits/basic_ios.tcc
index 1519603..d28424f 100644
--- a/libstdc++-v3/include/bits/basic_ios.tcc
+++ b/libstdc++-v3/include/bits/basic_ios.tcc
@@ -30,7 +30,9 @@
#ifndef _BASIC_IOS_TCC
#define _BASIC_IOS_TCC 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/bits/basic_string.h b/libstdc++-v3/include/bits/basic_string.h
index 120c0bc..976577f 100644
--- a/libstdc++-v3/include/bits/basic_string.h
+++ b/libstdc++-v3/include/bits/basic_string.h
@@ -34,7 +34,9 @@
#ifndef _BASIC_STRING_H
#define _BASIC_STRING_H 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <ext/alloc_traits.h>
#include <debug/debug.h>
diff --git a/libstdc++-v3/include/bits/basic_string.tcc b/libstdc++-v3/include/bits/basic_string.tcc
index 8a76485..2c17d25 100644
--- a/libstdc++-v3/include/bits/basic_string.tcc
+++ b/libstdc++-v3/include/bits/basic_string.tcc
@@ -39,7 +39,9 @@
#ifndef _BASIC_STRING_TCC
#define _BASIC_STRING_TCC 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/bits/boost_concept_check.h b/libstdc++-v3/include/bits/boost_concept_check.h
index a042ae6..76b5abb 100644
--- a/libstdc++-v3/include/bits/boost_concept_check.h
+++ b/libstdc++-v3/include/bits/boost_concept_check.h
@@ -39,7 +39,9 @@
#ifndef _BOOST_CONCEPT_CHECK_H
#define _BOOST_CONCEPT_CHECK_H 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <bits/c++config.h>
#include <bits/stl_iterator_base_types.h> // for traits and tags
diff --git a/libstdc++-v3/include/bits/c++config b/libstdc++-v3/include/bits/c++config
index 16c67b8..29d795f 100644
--- a/libstdc++-v3/include/bits/c++config
+++ b/libstdc++-v3/include/bits/c++config
@@ -30,7 +30,9 @@
#ifndef _GLIBCXX_CXX_CONFIG_H
#define _GLIBCXX_CXX_CONFIG_H 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wvariadic-macros"
diff --git a/libstdc++-v3/include/bits/char_traits.h b/libstdc++-v3/include/bits/char_traits.h
index ac3e43e..fa922e5 100644
--- a/libstdc++-v3/include/bits/char_traits.h
+++ b/libstdc++-v3/include/bits/char_traits.h
@@ -34,7 +34,9 @@
#ifndef _CHAR_TRAITS_H
#define _CHAR_TRAITS_H 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <bits/c++config.h>
diff --git a/libstdc++-v3/include/bits/charconv.h b/libstdc++-v3/include/bits/charconv.h
index c9d439b..b22c7e1 100644
--- a/libstdc++-v3/include/bits/charconv.h
+++ b/libstdc++-v3/include/bits/charconv.h
@@ -30,7 +30,9 @@
#ifndef _GLIBCXX_CHARCONV_H
#define _GLIBCXX_CHARCONV_H 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#if __cplusplus >= 201103L
diff --git a/libstdc++-v3/include/bits/chrono.h b/libstdc++-v3/include/bits/chrono.h
index fd9c464..3a5ab95 100644
--- a/libstdc++-v3/include/bits/chrono.h
+++ b/libstdc++-v3/include/bits/chrono.h
@@ -30,7 +30,9 @@
#ifndef _GLIBCXX_CHRONO_H
#define _GLIBCXX_CHRONO_H 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#if __cplusplus >= 201103L
diff --git a/libstdc++-v3/include/bits/chrono_io.h b/libstdc++-v3/include/bits/chrono_io.h
index c7d2c98..1e34c82 100644
--- a/libstdc++-v3/include/bits/chrono_io.h
+++ b/libstdc++-v3/include/bits/chrono_io.h
@@ -30,7 +30,9 @@
#ifndef _GLIBCXX_CHRONO_IO_H
#define _GLIBCXX_CHRONO_IO_H 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#if __cplusplus >= 202002L
diff --git a/libstdc++-v3/include/bits/codecvt.h b/libstdc++-v3/include/bits/codecvt.h
index c51cc7d..ce520a6 100644
--- a/libstdc++-v3/include/bits/codecvt.h
+++ b/libstdc++-v3/include/bits/codecvt.h
@@ -36,7 +36,9 @@
#ifndef _CODECVT_H
#define _CODECVT_H 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <bits/c++config.h>
#include <bits/locale_classes.h> // locale::facet
diff --git a/libstdc++-v3/include/bits/concept_check.h b/libstdc++-v3/include/bits/concept_check.h
index 6479f2f..cfedeb8 100644
--- a/libstdc++-v3/include/bits/concept_check.h
+++ b/libstdc++-v3/include/bits/concept_check.h
@@ -30,7 +30,9 @@
#ifndef _CONCEPT_CHECK_H
#define _CONCEPT_CHECK_H 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <bits/c++config.h>
diff --git a/libstdc++-v3/include/bits/cpp_type_traits.h b/libstdc++-v3/include/bits/cpp_type_traits.h
index e3a80e0..19bf1ed 100644
--- a/libstdc++-v3/include/bits/cpp_type_traits.h
+++ b/libstdc++-v3/include/bits/cpp_type_traits.h
@@ -32,7 +32,9 @@
#ifndef _CPP_TYPE_TRAITS_H
#define _CPP_TYPE_TRAITS_H 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <bits/c++config.h>
#include <bits/version.h>
diff --git a/libstdc++-v3/include/bits/elements_of.h b/libstdc++-v3/include/bits/elements_of.h
index 2c65f25..118efeb 100644
--- a/libstdc++-v3/include/bits/elements_of.h
+++ b/libstdc++-v3/include/bits/elements_of.h
@@ -25,7 +25,9 @@
#ifndef _GLIBCXX_BITS_ELEMENTS_OF
#define _GLIBCXX_BITS_ELEMENTS_OF
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <bits/c++config.h>
diff --git a/libstdc++-v3/include/bits/enable_special_members.h b/libstdc++-v3/include/bits/enable_special_members.h
index 73a9b02..b53ff34 100644
--- a/libstdc++-v3/include/bits/enable_special_members.h
+++ b/libstdc++-v3/include/bits/enable_special_members.h
@@ -30,7 +30,9 @@
#ifndef _ENABLE_SPECIAL_MEMBERS_H
#define _ENABLE_SPECIAL_MEMBERS_H 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <bits/c++config.h>
diff --git a/libstdc++-v3/include/bits/erase_if.h b/libstdc++-v3/include/bits/erase_if.h
index 1fc348d..327dade 100644
--- a/libstdc++-v3/include/bits/erase_if.h
+++ b/libstdc++-v3/include/bits/erase_if.h
@@ -30,7 +30,9 @@
#ifndef _GLIBCXX_ERASE_IF_H
#define _GLIBCXX_ERASE_IF_H 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <bits/c++config.h>
diff --git a/libstdc++-v3/include/bits/forward_list.h b/libstdc++-v3/include/bits/forward_list.h
index 5ab2253..eee773c 100644
--- a/libstdc++-v3/include/bits/forward_list.h
+++ b/libstdc++-v3/include/bits/forward_list.h
@@ -30,7 +30,9 @@
#ifndef _FORWARD_LIST_H
#define _FORWARD_LIST_H 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <initializer_list>
#include <bits/stl_iterator_base_types.h>
diff --git a/libstdc++-v3/include/bits/fstream.tcc b/libstdc++-v3/include/bits/fstream.tcc
index 7b246ad..9f250d3 100644
--- a/libstdc++-v3/include/bits/fstream.tcc
+++ b/libstdc++-v3/include/bits/fstream.tcc
@@ -34,7 +34,9 @@
#ifndef _FSTREAM_TCC
#define _FSTREAM_TCC 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/bits/functional_hash.h b/libstdc++-v3/include/bits/functional_hash.h
index 3626ebe..e7d8c6c 100644
--- a/libstdc++-v3/include/bits/functional_hash.h
+++ b/libstdc++-v3/include/bits/functional_hash.h
@@ -30,7 +30,9 @@
#ifndef _FUNCTIONAL_HASH_H
#define _FUNCTIONAL_HASH_H 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <type_traits>
#include <bits/hash_bytes.h>
diff --git a/libstdc++-v3/include/bits/gslice.h b/libstdc++-v3/include/bits/gslice.h
index d9a8b92..90e21fd 100644
--- a/libstdc++-v3/include/bits/gslice.h
+++ b/libstdc++-v3/include/bits/gslice.h
@@ -32,7 +32,9 @@
#ifndef _GSLICE_H
#define _GSLICE_H 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
namespace std _GLIBCXX_VISIBILITY(default)
{
diff --git a/libstdc++-v3/include/bits/gslice_array.h b/libstdc++-v3/include/bits/gslice_array.h
index a358123..fc3cdb9 100644
--- a/libstdc++-v3/include/bits/gslice_array.h
+++ b/libstdc++-v3/include/bits/gslice_array.h
@@ -32,7 +32,9 @@
#ifndef _GSLICE_ARRAY_H
#define _GSLICE_ARRAY_H 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
namespace std _GLIBCXX_VISIBILITY(default)
{
diff --git a/libstdc++-v3/include/bits/hashtable.h b/libstdc++-v3/include/bits/hashtable.h
index b02bddf..92b5707 100644
--- a/libstdc++-v3/include/bits/hashtable.h
+++ b/libstdc++-v3/include/bits/hashtable.h
@@ -30,7 +30,9 @@
#ifndef _HASHTABLE_H
#define _HASHTABLE_H 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <bits/hashtable_policy.h>
#include <bits/enable_special_members.h>
diff --git a/libstdc++-v3/include/bits/indirect_array.h b/libstdc++-v3/include/bits/indirect_array.h
index 99980d5..b682953 100644
--- a/libstdc++-v3/include/bits/indirect_array.h
+++ b/libstdc++-v3/include/bits/indirect_array.h
@@ -32,7 +32,9 @@
#ifndef _INDIRECT_ARRAY_H
#define _INDIRECT_ARRAY_H 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
namespace std _GLIBCXX_VISIBILITY(default)
{
diff --git a/libstdc++-v3/include/bits/invoke.h b/libstdc++-v3/include/bits/invoke.h
index 2c66a36..eff2ff5 100644
--- a/libstdc++-v3/include/bits/invoke.h
+++ b/libstdc++-v3/include/bits/invoke.h
@@ -30,7 +30,9 @@
#ifndef _GLIBCXX_INVOKE_H
#define _GLIBCXX_INVOKE_H 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#if __cplusplus < 201103L
# include <bits/c++0x_warning.h>
diff --git a/libstdc++-v3/include/bits/ios_base.h b/libstdc++-v3/include/bits/ios_base.h
index 6e34365..a649448 100644
--- a/libstdc++-v3/include/bits/ios_base.h
+++ b/libstdc++-v3/include/bits/ios_base.h
@@ -34,7 +34,9 @@
#ifndef _IOS_BASE_H
#define _IOS_BASE_H 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <ext/atomicity.h>
#include <bits/localefwd.h>
diff --git a/libstdc++-v3/include/bits/istream.tcc b/libstdc++-v3/include/bits/istream.tcc
index 23a7c84..e8957fd 100644
--- a/libstdc++-v3/include/bits/istream.tcc
+++ b/libstdc++-v3/include/bits/istream.tcc
@@ -34,7 +34,9 @@
#ifndef _ISTREAM_TCC
#define _ISTREAM_TCC 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/bits/iterator_concepts.h b/libstdc++-v3/include/bits/iterator_concepts.h
index d96573f..490a362 100644
--- a/libstdc++-v3/include/bits/iterator_concepts.h
+++ b/libstdc++-v3/include/bits/iterator_concepts.h
@@ -30,7 +30,9 @@
#ifndef _ITERATOR_CONCEPTS_H
#define _ITERATOR_CONCEPTS_H 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#if __cplusplus >= 202002L
#include <concepts>
diff --git a/libstdc++-v3/include/bits/locale_classes.h b/libstdc++-v3/include/bits/locale_classes.h
index e168881..0edb815 100644
--- a/libstdc++-v3/include/bits/locale_classes.h
+++ b/libstdc++-v3/include/bits/locale_classes.h
@@ -34,7 +34,9 @@
#ifndef _LOCALE_CLASSES_H
#define _LOCALE_CLASSES_H 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <bits/localefwd.h>
#include <string>
diff --git a/libstdc++-v3/include/bits/locale_classes.tcc b/libstdc++-v3/include/bits/locale_classes.tcc
index 4f3af24..2b78008 100644
--- a/libstdc++-v3/include/bits/locale_classes.tcc
+++ b/libstdc++-v3/include/bits/locale_classes.tcc
@@ -34,8 +34,9 @@
#ifndef _LOCALE_CLASSES_TCC
#define _LOCALE_CLASSES_TCC 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
-
+#endif
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wc++11-extensions" // extern template
#pragma GCC diagnostic ignored "-Wvariadic-macros"
diff --git a/libstdc++-v3/include/bits/locale_facets.h b/libstdc++-v3/include/bits/locale_facets.h
index 53bb108..afa239a 100644
--- a/libstdc++-v3/include/bits/locale_facets.h
+++ b/libstdc++-v3/include/bits/locale_facets.h
@@ -34,7 +34,9 @@
#ifndef _LOCALE_FACETS_H
#define _LOCALE_FACETS_H 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <cwctype> // For wctype_t
#include <cctype>
diff --git a/libstdc++-v3/include/bits/locale_facets.tcc b/libstdc++-v3/include/bits/locale_facets.tcc
index 4e9bf6f..14e87ab 100644
--- a/libstdc++-v3/include/bits/locale_facets.tcc
+++ b/libstdc++-v3/include/bits/locale_facets.tcc
@@ -30,8 +30,9 @@
#ifndef _LOCALE_FACETS_TCC
#define _LOCALE_FACETS_TCC 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/bits/locale_facets_nonio.h b/libstdc++-v3/include/bits/locale_facets_nonio.h
index f9e70e5..298ffc1 100644
--- a/libstdc++-v3/include/bits/locale_facets_nonio.h
+++ b/libstdc++-v3/include/bits/locale_facets_nonio.h
@@ -34,7 +34,9 @@
#ifndef _LOCALE_FACETS_NONIO_H
#define _LOCALE_FACETS_NONIO_H 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <ctime> // For struct tm
diff --git a/libstdc++-v3/include/bits/locale_facets_nonio.tcc b/libstdc++-v3/include/bits/locale_facets_nonio.tcc
index 72136f4..7b597c8 100644
--- a/libstdc++-v3/include/bits/locale_facets_nonio.tcc
+++ b/libstdc++-v3/include/bits/locale_facets_nonio.tcc
@@ -30,7 +30,9 @@
#ifndef _LOCALE_FACETS_NONIO_TCC
#define _LOCALE_FACETS_NONIO_TCC 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
namespace std _GLIBCXX_VISIBILITY(default)
{
diff --git a/libstdc++-v3/include/bits/localefwd.h b/libstdc++-v3/include/bits/localefwd.h
index 07e5443..cee5c4d 100644
--- a/libstdc++-v3/include/bits/localefwd.h
+++ b/libstdc++-v3/include/bits/localefwd.h
@@ -34,7 +34,9 @@
#ifndef _LOCALE_FWD_H
#define _LOCALE_FWD_H 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <bits/c++config.h>
#include <bits/c++locale.h> // Defines __c_locale, config-specific include
diff --git a/libstdc++-v3/include/bits/mask_array.h b/libstdc++-v3/include/bits/mask_array.h
index 58fcc30..341b828 100644
--- a/libstdc++-v3/include/bits/mask_array.h
+++ b/libstdc++-v3/include/bits/mask_array.h
@@ -32,7 +32,9 @@
#ifndef _MASK_ARRAY_H
#define _MASK_ARRAY_H 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
namespace std _GLIBCXX_VISIBILITY(default)
{
diff --git a/libstdc++-v3/include/bits/max_size_type.h b/libstdc++-v3/include/bits/max_size_type.h
index 7d68670..d3392b2e 100644
--- a/libstdc++-v3/include/bits/max_size_type.h
+++ b/libstdc++-v3/include/bits/max_size_type.h
@@ -30,7 +30,9 @@
#ifndef _GLIBCXX_MAX_SIZE_TYPE_H
#define _GLIBCXX_MAX_SIZE_TYPE_H 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#if __cplusplus > 201703L && __cpp_lib_concepts
#include <ext/numeric_traits.h>
diff --git a/libstdc++-v3/include/bits/memory_resource.h b/libstdc++-v3/include/bits/memory_resource.h
index db515fb..a40c972 100644
--- a/libstdc++-v3/include/bits/memory_resource.h
+++ b/libstdc++-v3/include/bits/memory_resource.h
@@ -30,7 +30,9 @@
#ifndef _GLIBCXX_MEMORY_RESOURCE_H
#define _GLIBCXX_MEMORY_RESOURCE_H 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#if __cplusplus >= 201703L
diff --git a/libstdc++-v3/include/bits/memoryfwd.h b/libstdc++-v3/include/bits/memoryfwd.h
index 03d1162..bb6bdcc 100644
--- a/libstdc++-v3/include/bits/memoryfwd.h
+++ b/libstdc++-v3/include/bits/memoryfwd.h
@@ -43,7 +43,9 @@
#ifndef _MEMORYFWD_H
#define _MEMORYFWD_H 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <bits/c++config.h>
diff --git a/libstdc++-v3/include/bits/move_only_function.h b/libstdc++-v3/include/bits/move_only_function.h
index 2a40ff4..42b33d0 100644
--- a/libstdc++-v3/include/bits/move_only_function.h
+++ b/libstdc++-v3/include/bits/move_only_function.h
@@ -30,7 +30,9 @@
#ifndef _GLIBCXX_MOVE_ONLY_FUNCTION_H
#define _GLIBCXX_MOVE_ONLY_FUNCTION_H 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <bits/version.h>
diff --git a/libstdc++-v3/include/bits/node_handle.h b/libstdc++-v3/include/bits/node_handle.h
index 2d8e47c..d8ba111 100644
--- a/libstdc++-v3/include/bits/node_handle.h
+++ b/libstdc++-v3/include/bits/node_handle.h
@@ -31,7 +31,9 @@
#ifndef _NODE_HANDLE
#define _NODE_HANDLE 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <bits/version.h>
diff --git a/libstdc++-v3/include/bits/ostream.tcc b/libstdc++-v3/include/bits/ostream.tcc
index 7aeb23a..06cf2da 100644
--- a/libstdc++-v3/include/bits/ostream.tcc
+++ b/libstdc++-v3/include/bits/ostream.tcc
@@ -34,8 +34,9 @@
#ifndef _OSTREAM_TCC
#define _OSTREAM_TCC 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/bits/ostream_insert.h b/libstdc++-v3/include/bits/ostream_insert.h
index d61b4b1..c92504e 100644
--- a/libstdc++-v3/include/bits/ostream_insert.h
+++ b/libstdc++-v3/include/bits/ostream_insert.h
@@ -30,7 +30,9 @@
#ifndef _OSTREAM_INSERT_H
#define _OSTREAM_INSERT_H 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <iosfwd>
#include <bits/cxxabi_forced.h>
diff --git a/libstdc++-v3/include/bits/out_ptr.h b/libstdc++-v3/include/bits/out_ptr.h
index d74c9f5..00ba09d 100644
--- a/libstdc++-v3/include/bits/out_ptr.h
+++ b/libstdc++-v3/include/bits/out_ptr.h
@@ -30,7 +30,9 @@
#ifndef _GLIBCXX_OUT_PTR_H
#define _GLIBCXX_OUT_PTR_H 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <bits/version.h>
diff --git a/libstdc++-v3/include/bits/parse_numbers.h b/libstdc++-v3/include/bits/parse_numbers.h
index 97c08ca..7d352ce 100644
--- a/libstdc++-v3/include/bits/parse_numbers.h
+++ b/libstdc++-v3/include/bits/parse_numbers.h
@@ -30,7 +30,9 @@
#ifndef _GLIBCXX_PARSE_NUMBERS_H
#define _GLIBCXX_PARSE_NUMBERS_H 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
// From n3642.pdf except I added binary literals and digit separator '\''.
diff --git a/libstdc++-v3/include/bits/postypes.h b/libstdc++-v3/include/bits/postypes.h
index 3da558b..7bd973e 100644
--- a/libstdc++-v3/include/bits/postypes.h
+++ b/libstdc++-v3/include/bits/postypes.h
@@ -35,7 +35,9 @@
#ifndef _GLIBCXX_POSTYPES_H
#define _GLIBCXX_POSTYPES_H 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <cwchar> // For mbstate_t
diff --git a/libstdc++-v3/include/bits/quoted_string.h b/libstdc++-v3/include/bits/quoted_string.h
index e2f2518..a0b6726 100644
--- a/libstdc++-v3/include/bits/quoted_string.h
+++ b/libstdc++-v3/include/bits/quoted_string.h
@@ -30,7 +30,9 @@
#ifndef _GLIBCXX_QUOTED_STRING_H
#define _GLIBCXX_QUOTED_STRING_H 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#if __cplusplus < 201103L
# include <bits/c++0x_warning.h>
diff --git a/libstdc++-v3/include/bits/range_access.h b/libstdc++-v3/include/bits/range_access.h
index a9896d1..2dacbed 100644
--- a/libstdc++-v3/include/bits/range_access.h
+++ b/libstdc++-v3/include/bits/range_access.h
@@ -30,7 +30,9 @@
#ifndef _GLIBCXX_RANGE_ACCESS_H
#define _GLIBCXX_RANGE_ACCESS_H 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#if __cplusplus >= 201103L
#include <initializer_list>
diff --git a/libstdc++-v3/include/bits/ranges_base.h b/libstdc++-v3/include/bits/ranges_base.h
index ebd4f7e..137c3c9 100644
--- a/libstdc++-v3/include/bits/ranges_base.h
+++ b/libstdc++-v3/include/bits/ranges_base.h
@@ -30,7 +30,9 @@
#ifndef _GLIBCXX_RANGES_BASE_H
#define _GLIBCXX_RANGES_BASE_H 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#if __cplusplus > 201703L
#include <initializer_list>
diff --git a/libstdc++-v3/include/bits/refwrap.h b/libstdc++-v3/include/bits/refwrap.h
index 71ec2b2..a73cdc9 100644
--- a/libstdc++-v3/include/bits/refwrap.h
+++ b/libstdc++-v3/include/bits/refwrap.h
@@ -30,7 +30,9 @@
#ifndef _GLIBCXX_REFWRAP_H
#define _GLIBCXX_REFWRAP_H 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#if __cplusplus >= 201103L
diff --git a/libstdc++-v3/include/bits/sat_arith.h b/libstdc++-v3/include/bits/sat_arith.h
index 7179346..97545d2 100644
--- a/libstdc++-v3/include/bits/sat_arith.h
+++ b/libstdc++-v3/include/bits/sat_arith.h
@@ -30,7 +30,9 @@
#ifndef _GLIBCXX_SAT_ARITH_H
#define _GLIBCXX_SAT_ARITH_H 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <bits/version.h>
diff --git a/libstdc++-v3/include/bits/semaphore_base.h b/libstdc++-v3/include/bits/semaphore_base.h
index 2b19c9c..9d73b37 100644
--- a/libstdc++-v3/include/bits/semaphore_base.h
+++ b/libstdc++-v3/include/bits/semaphore_base.h
@@ -30,7 +30,9 @@
#ifndef _GLIBCXX_SEMAPHORE_BASE_H
#define _GLIBCXX_SEMAPHORE_BASE_H 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <bits/atomic_base.h>
#include <bits/chrono.h>
diff --git a/libstdc++-v3/include/bits/slice_array.h b/libstdc++-v3/include/bits/slice_array.h
index 10e1604..50ed758 100644
--- a/libstdc++-v3/include/bits/slice_array.h
+++ b/libstdc++-v3/include/bits/slice_array.h
@@ -32,7 +32,9 @@
#ifndef _SLICE_ARRAY_H
#define _SLICE_ARRAY_H 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
namespace std _GLIBCXX_VISIBILITY(default)
{
diff --git a/libstdc++-v3/include/bits/sstream.tcc b/libstdc++-v3/include/bits/sstream.tcc
index 7eb5561..e6a06d13 100644
--- a/libstdc++-v3/include/bits/sstream.tcc
+++ b/libstdc++-v3/include/bits/sstream.tcc
@@ -34,8 +34,9 @@
#ifndef _SSTREAM_TCC
#define _SSTREAM_TCC 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/bits/std_abs.h b/libstdc++-v3/include/bits/std_abs.h
index d143ec1..0fa6468 100644
--- a/libstdc++-v3/include/bits/std_abs.h
+++ b/libstdc++-v3/include/bits/std_abs.h
@@ -30,7 +30,9 @@
#ifndef _GLIBCXX_BITS_STD_ABS_H
#define _GLIBCXX_BITS_STD_ABS_H
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <bits/c++config.h>
diff --git a/libstdc++-v3/include/bits/std_function.h b/libstdc++-v3/include/bits/std_function.h
index bb8d8b9..d6c4481 100644
--- a/libstdc++-v3/include/bits/std_function.h
+++ b/libstdc++-v3/include/bits/std_function.h
@@ -30,7 +30,9 @@
#ifndef _GLIBCXX_STD_FUNCTION_H
#define _GLIBCXX_STD_FUNCTION_H 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#if __cplusplus < 201103L
# include <bits/c++0x_warning.h>
diff --git a/libstdc++-v3/include/bits/std_mutex.h b/libstdc++-v3/include/bits/std_mutex.h
index c4b2876..2ade4c5 100644
--- a/libstdc++-v3/include/bits/std_mutex.h
+++ b/libstdc++-v3/include/bits/std_mutex.h
@@ -30,7 +30,9 @@
#ifndef _GLIBCXX_MUTEX_H
#define _GLIBCXX_MUTEX_H 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#if __cplusplus < 201103L
# include <bits/c++0x_warning.h>
diff --git a/libstdc++-v3/include/bits/std_thread.h b/libstdc++-v3/include/bits/std_thread.h
index 5817bfb..eca2de7 100644
--- a/libstdc++-v3/include/bits/std_thread.h
+++ b/libstdc++-v3/include/bits/std_thread.h
@@ -30,7 +30,9 @@
#ifndef _GLIBCXX_THREAD_H
#define _GLIBCXX_THREAD_H 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#if __cplusplus >= 201103L
#include <bits/c++config.h>
diff --git a/libstdc++-v3/include/bits/stl_iterator_base_funcs.h b/libstdc++-v3/include/bits/stl_iterator_base_funcs.h
index 2c9eaf9..0ee50aa 100644
--- a/libstdc++-v3/include/bits/stl_iterator_base_funcs.h
+++ b/libstdc++-v3/include/bits/stl_iterator_base_funcs.h
@@ -59,7 +59,9 @@
#ifndef _STL_ITERATOR_BASE_FUNCS_H
#define _STL_ITERATOR_BASE_FUNCS_H 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <bits/concept_check.h>
#include <debug/assertions.h>
diff --git a/libstdc++-v3/include/bits/stl_iterator_base_types.h b/libstdc++-v3/include/bits/stl_iterator_base_types.h
index 14ea0d4..710e367 100644
--- a/libstdc++-v3/include/bits/stl_iterator_base_types.h
+++ b/libstdc++-v3/include/bits/stl_iterator_base_types.h
@@ -59,7 +59,9 @@
#ifndef _STL_ITERATOR_BASE_TYPES_H
#define _STL_ITERATOR_BASE_TYPES_H 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <bits/c++config.h>
diff --git a/libstdc++-v3/include/bits/stl_tree.h b/libstdc++-v3/include/bits/stl_tree.h
index 978093f..bc27e19 100644
--- a/libstdc++-v3/include/bits/stl_tree.h
+++ b/libstdc++-v3/include/bits/stl_tree.h
@@ -58,7 +58,9 @@
#ifndef _STL_TREE_H
#define _STL_TREE_H 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <bits/stl_algobase.h>
#include <bits/allocator.h>
diff --git a/libstdc++-v3/include/bits/stream_iterator.h b/libstdc++-v3/include/bits/stream_iterator.h
index 6c3ba9d..32b265c 100644
--- a/libstdc++-v3/include/bits/stream_iterator.h
+++ b/libstdc++-v3/include/bits/stream_iterator.h
@@ -30,7 +30,9 @@
#ifndef _STREAM_ITERATOR_H
#define _STREAM_ITERATOR_H 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <iosfwd>
#include <bits/move.h>
diff --git a/libstdc++-v3/include/bits/streambuf.tcc b/libstdc++-v3/include/bits/streambuf.tcc
index 0c28033..991c27e 100644
--- a/libstdc++-v3/include/bits/streambuf.tcc
+++ b/libstdc++-v3/include/bits/streambuf.tcc
@@ -34,7 +34,9 @@
#ifndef _STREAMBUF_TCC
#define _STREAMBUF_TCC 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/bits/streambuf_iterator.h b/libstdc++-v3/include/bits/streambuf_iterator.h
index 579bf0b..078eeb3 100644
--- a/libstdc++-v3/include/bits/streambuf_iterator.h
+++ b/libstdc++-v3/include/bits/streambuf_iterator.h
@@ -30,7 +30,9 @@
#ifndef _STREAMBUF_ITERATOR_H
#define _STREAMBUF_ITERATOR_H 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <streambuf>
#include <bits/stl_iterator_base_types.h>
diff --git a/libstdc++-v3/include/bits/string_view.tcc b/libstdc++-v3/include/bits/string_view.tcc
index 5fa5049..a9ba668 100644
--- a/libstdc++-v3/include/bits/string_view.tcc
+++ b/libstdc++-v3/include/bits/string_view.tcc
@@ -34,7 +34,9 @@
#ifndef _GLIBCXX_STRING_VIEW_TCC
#define _GLIBCXX_STRING_VIEW_TCC 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#if __cplusplus >= 201703L
diff --git a/libstdc++-v3/include/bits/stringfwd.h b/libstdc++-v3/include/bits/stringfwd.h
index dcbc9ed..8f9a32d 100644
--- a/libstdc++-v3/include/bits/stringfwd.h
+++ b/libstdc++-v3/include/bits/stringfwd.h
@@ -34,7 +34,9 @@
#ifndef _STRINGFWD_H
#define _STRINGFWD_H 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <bits/c++config.h>
#include <bits/memoryfwd.h>
diff --git a/libstdc++-v3/include/bits/this_thread_sleep.h b/libstdc++-v3/include/bits/this_thread_sleep.h
index b7ddd1b..d1b1436 100644
--- a/libstdc++-v3/include/bits/this_thread_sleep.h
+++ b/libstdc++-v3/include/bits/this_thread_sleep.h
@@ -30,7 +30,9 @@
#ifndef _GLIBCXX_THIS_THREAD_SLEEP_H
#define _GLIBCXX_THIS_THREAD_SLEEP_H 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#if __cplusplus >= 201103L
#include <bits/chrono.h> // std::chrono::*
diff --git a/libstdc++-v3/include/bits/unique_lock.h b/libstdc++-v3/include/bits/unique_lock.h
index efb24cf..acb6545 100644
--- a/libstdc++-v3/include/bits/unique_lock.h
+++ b/libstdc++-v3/include/bits/unique_lock.h
@@ -30,7 +30,9 @@
#ifndef _GLIBCXX_UNIQUE_LOCK_H
#define _GLIBCXX_UNIQUE_LOCK_H 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#if __cplusplus < 201103L
# include <bits/c++0x_warning.h>
diff --git a/libstdc++-v3/include/bits/uses_allocator_args.h b/libstdc++-v3/include/bits/uses_allocator_args.h
index 92097c9..18fd4bb 100644
--- a/libstdc++-v3/include/bits/uses_allocator_args.h
+++ b/libstdc++-v3/include/bits/uses_allocator_args.h
@@ -30,7 +30,9 @@
#ifndef _USES_ALLOCATOR_ARGS
#define _USES_ALLOCATOR_ARGS 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <bits/version.h>
diff --git a/libstdc++-v3/include/bits/utility.h b/libstdc++-v3/include/bits/utility.h
index 751ff7b..4a6c16d 100644
--- a/libstdc++-v3/include/bits/utility.h
+++ b/libstdc++-v3/include/bits/utility.h
@@ -33,7 +33,9 @@
#ifndef _GLIBCXX_UTILITY_H
#define _GLIBCXX_UTILITY_H 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#if __cplusplus >= 201103L
diff --git a/libstdc++-v3/include/bits/valarray_after.h b/libstdc++-v3/include/bits/valarray_after.h
index b7c93fc..380839c 100644
--- a/libstdc++-v3/include/bits/valarray_after.h
+++ b/libstdc++-v3/include/bits/valarray_after.h
@@ -32,7 +32,9 @@
#ifndef _VALARRAY_AFTER_H
#define _VALARRAY_AFTER_H 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
namespace std _GLIBCXX_VISIBILITY(default)
{
diff --git a/libstdc++-v3/include/bits/valarray_array.h b/libstdc++-v3/include/bits/valarray_array.h
index 0dc2833..0c14331 100644
--- a/libstdc++-v3/include/bits/valarray_array.h
+++ b/libstdc++-v3/include/bits/valarray_array.h
@@ -32,7 +32,9 @@
#ifndef _VALARRAY_ARRAY_H
#define _VALARRAY_ARRAY_H 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <bits/c++config.h>
#include <bits/cpp_type_traits.h>
diff --git a/libstdc++-v3/include/bits/valarray_before.h b/libstdc++-v3/include/bits/valarray_before.h
index af5a1c2..c6eabd2 100644
--- a/libstdc++-v3/include/bits/valarray_before.h
+++ b/libstdc++-v3/include/bits/valarray_before.h
@@ -32,7 +32,9 @@
#ifndef _VALARRAY_BEFORE_H
#define _VALARRAY_BEFORE_H 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <bits/slice_array.h>
diff --git a/libstdc++-v3/include/bits/version.h b/libstdc++-v3/include/bits/version.h
index 22526e8..dcd93fd 100644
--- a/libstdc++-v3/include/bits/version.h
+++ b/libstdc++-v3/include/bits/version.h
@@ -44,7 +44,9 @@
// if unwanted, to permit bits and other FTMs to depend on them for condtional
// computation without exposing extra FTMs to user code.
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <bits/c++config.h>
diff --git a/libstdc++-v3/include/bits/version.tpl b/libstdc++-v3/include/bits/version.tpl
index 4a7d5e2..d4cb88f 100644
--- a/libstdc++-v3/include/bits/version.tpl
+++ b/libstdc++-v3/include/bits/version.tpl
@@ -44,7 +44,9 @@ h
// if unwanted, to permit bits and other FTMs to depend on them for condtional
// computation without exposing extra FTMs to user code.
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <bits/c++config.h>
/*{
diff --git a/libstdc++-v3/include/c/cassert b/libstdc++-v3/include/c/cassert
index ef6e844..8163d0c 100644
--- a/libstdc++-v3/include/c/cassert
+++ b/libstdc++-v3/include/c/cassert
@@ -28,7 +28,9 @@
// No include guards on this header...
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wpedantic" // include_next
diff --git a/libstdc++-v3/include/c/cctype b/libstdc++-v3/include/c/cctype
index a7a5955..cc5ebf5 100644
--- a/libstdc++-v3/include/c/cctype
+++ b/libstdc++-v3/include/c/cctype
@@ -29,7 +29,9 @@
#ifndef _GLIBCXX_CCTYPE
#define _GLIBCXX_CCTYPE 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wpedantic" // include_next
diff --git a/libstdc++-v3/include/c/cerrno b/libstdc++-v3/include/c/cerrno
index 29bf0b4..1875054 100644
--- a/libstdc++-v3/include/c/cerrno
+++ b/libstdc++-v3/include/c/cerrno
@@ -38,7 +38,9 @@
#ifndef _GLIBCXX_CERRNO
#define _GLIBCXX_CERRNO 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wpedantic" // include_next
diff --git a/libstdc++-v3/include/c/cfloat b/libstdc++-v3/include/c/cfloat
index 1f9edad..9eab4fb 100644
--- a/libstdc++-v3/include/c/cfloat
+++ b/libstdc++-v3/include/c/cfloat
@@ -29,7 +29,9 @@
#ifndef _GLIBCXX_CFLOAT
#define _GLIBCXX_CFLOAT 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wpedantic" // include_next
diff --git a/libstdc++-v3/include/c/ciso646 b/libstdc++-v3/include/c/ciso646
index 2b6f797..bd04ef3 100644
--- a/libstdc++-v3/include/c/ciso646
+++ b/libstdc++-v3/include/c/ciso646
@@ -32,7 +32,9 @@
#ifndef _GLIBCXX_CISO646
#define _GLIBCXX_CISO646
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <bits/c++config.h>
#endif
diff --git a/libstdc++-v3/include/c/climits b/libstdc++-v3/include/c/climits
index 846fe19..9728ca5 100644
--- a/libstdc++-v3/include/c/climits
+++ b/libstdc++-v3/include/c/climits
@@ -29,7 +29,9 @@
#ifndef _GLIBCXX_CLIMITS
#define _GLIBCXX_CLIMITS 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wpedantic" // include_next
diff --git a/libstdc++-v3/include/c/clocale b/libstdc++-v3/include/c/clocale
index 62d85ed..183d224 100644
--- a/libstdc++-v3/include/c/clocale
+++ b/libstdc++-v3/include/c/clocale
@@ -29,7 +29,9 @@
#ifndef _GLIBCXX_CLOCALE
#define _GLIBCXX_CLOCALE 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wpedantic" // include_next
diff --git a/libstdc++-v3/include/c/cmath b/libstdc++-v3/include/c/cmath
index 371ee59..43ff06a 100644
--- a/libstdc++-v3/include/c/cmath
+++ b/libstdc++-v3/include/c/cmath
@@ -29,7 +29,9 @@
#ifndef _GLIBCXX_CMATH
#define _GLIBCXX_CMATH 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <bits/c++config.h>
diff --git a/libstdc++-v3/include/c/csetjmp b/libstdc++-v3/include/c/csetjmp
index acf113a..10e5e93 100644
--- a/libstdc++-v3/include/c/csetjmp
+++ b/libstdc++-v3/include/c/csetjmp
@@ -29,7 +29,9 @@
#ifndef _GLIBCXX_CSETJMP
#define _GLIBCXX_CSETJMP 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wpedantic" // include_next
diff --git a/libstdc++-v3/include/c/csignal b/libstdc++-v3/include/c/csignal
index c04bb60..987d457 100644
--- a/libstdc++-v3/include/c/csignal
+++ b/libstdc++-v3/include/c/csignal
@@ -29,7 +29,9 @@
#ifndef _GLIBCXX_CSIGNAL
#define _GLIBCXX_CSIGNAL 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wpedantic" // include_next
diff --git a/libstdc++-v3/include/c/cstdarg b/libstdc++-v3/include/c/cstdarg
index 7648662..520c339 100644
--- a/libstdc++-v3/include/c/cstdarg
+++ b/libstdc++-v3/include/c/cstdarg
@@ -29,7 +29,9 @@
#ifndef _GLIBCXX_CSTDARG
#define _GLIBCXX_CSTDARG 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wpedantic" // include_next
diff --git a/libstdc++-v3/include/c/cstddef b/libstdc++-v3/include/c/cstddef
index e1435b9..657363c 100644
--- a/libstdc++-v3/include/c/cstddef
+++ b/libstdc++-v3/include/c/cstddef
@@ -29,7 +29,9 @@
#ifndef _GLIBCXX_CSTDDEF
#define _GLIBCXX_CSTDDEF 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wpedantic" // include_next
diff --git a/libstdc++-v3/include/c/cstdio b/libstdc++-v3/include/c/cstdio
index 99aead4..4e044fc 100644
--- a/libstdc++-v3/include/c/cstdio
+++ b/libstdc++-v3/include/c/cstdio
@@ -29,7 +29,9 @@
#ifndef _GLIBCXX_CSTDIO
#define _GLIBCXX_CSTDIO 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wpedantic" // include_next
diff --git a/libstdc++-v3/include/c/cstdlib b/libstdc++-v3/include/c/cstdlib
index 75e6382..7aaf8d1 100644
--- a/libstdc++-v3/include/c/cstdlib
+++ b/libstdc++-v3/include/c/cstdlib
@@ -29,7 +29,9 @@
#ifndef _GLIBCXX_CSTDLIB
#define _GLIBCXX_CSTDLIB 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wpedantic" // include_next
diff --git a/libstdc++-v3/include/c/cstring b/libstdc++-v3/include/c/cstring
index 05d7518..b0dae9d 100644
--- a/libstdc++-v3/include/c/cstring
+++ b/libstdc++-v3/include/c/cstring
@@ -29,7 +29,9 @@
#ifndef _GLIBCXX_CSTRING
#define _GLIBCXX_CSTRING 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wpedantic" // include_next
diff --git a/libstdc++-v3/include/c/ctime b/libstdc++-v3/include/c/ctime
index 73e2a7a..fb6ba3f 100644
--- a/libstdc++-v3/include/c/ctime
+++ b/libstdc++-v3/include/c/ctime
@@ -29,7 +29,9 @@
#ifndef _GLIBCXX_CTIME
#define _GLIBCXX_CTIME 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wpedantic" // include_next
diff --git a/libstdc++-v3/include/c/cuchar b/libstdc++-v3/include/c/cuchar
index 430d1ff..58aa822 100644
--- a/libstdc++-v3/include/c/cuchar
+++ b/libstdc++-v3/include/c/cuchar
@@ -29,7 +29,9 @@
#ifndef _GLIBCXX_CUCHAR
#define _GLIBCXX_CUCHAR 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#if __cplusplus < 201103L
# include <bits/c++0x_warning.h>
diff --git a/libstdc++-v3/include/c/cwchar b/libstdc++-v3/include/c/cwchar
index 921de26..7f6de34 100644
--- a/libstdc++-v3/include/c/cwchar
+++ b/libstdc++-v3/include/c/cwchar
@@ -29,7 +29,9 @@
#ifndef _GLIBCXX_CWCHAR
#define _GLIBCXX_CWCHAR 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <bits/c++config.h>
#include <cstddef>
diff --git a/libstdc++-v3/include/c/cwctype b/libstdc++-v3/include/c/cwctype
index 0d2f55d..9505dd9 100644
--- a/libstdc++-v3/include/c/cwctype
+++ b/libstdc++-v3/include/c/cwctype
@@ -29,7 +29,9 @@
#ifndef _GLIBCXX_CWCTYPE
#define _GLIBCXX_CWCTYPE 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wpedantic" // include_next
diff --git a/libstdc++-v3/include/c_compatibility/fenv.h b/libstdc++-v3/include/c_compatibility/fenv.h
index a587e73..957de38 100644
--- a/libstdc++-v3/include/c_compatibility/fenv.h
+++ b/libstdc++-v3/include/c_compatibility/fenv.h
@@ -29,7 +29,9 @@
#ifndef _GLIBCXX_FENV_H
#define _GLIBCXX_FENV_H 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wpedantic" // include_next
diff --git a/libstdc++-v3/include/c_compatibility/inttypes.h b/libstdc++-v3/include/c_compatibility/inttypes.h
index 5a428ce..1eaa390 100644
--- a/libstdc++-v3/include/c_compatibility/inttypes.h
+++ b/libstdc++-v3/include/c_compatibility/inttypes.h
@@ -29,7 +29,9 @@
#ifndef _GLIBCXX_INTTYPES_H
#define _GLIBCXX_INTTYPES_H 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wpedantic" // include_next
diff --git a/libstdc++-v3/include/c_compatibility/stdint.h b/libstdc++-v3/include/c_compatibility/stdint.h
index 2d892e7..8923db8 100644
--- a/libstdc++-v3/include/c_compatibility/stdint.h
+++ b/libstdc++-v3/include/c_compatibility/stdint.h
@@ -29,7 +29,9 @@
#ifndef _GLIBCXX_STDINT_H
#define _GLIBCXX_STDINT_H 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wpedantic" // include_next
diff --git a/libstdc++-v3/include/c_global/cassert b/libstdc++-v3/include/c_global/cassert
index 87b61bd..ed05d53 100644
--- a/libstdc++-v3/include/c_global/cassert
+++ b/libstdc++-v3/include/c_global/cassert
@@ -38,7 +38,9 @@
// No include guards on this header...
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <bits/c++config.h>
#include <assert.h>
diff --git a/libstdc++-v3/include/c_global/ccomplex b/libstdc++-v3/include/c_global/ccomplex
index 899d41c..ee1166a 100644
--- a/libstdc++-v3/include/c_global/ccomplex
+++ b/libstdc++-v3/include/c_global/ccomplex
@@ -29,7 +29,9 @@
#ifndef _GLIBCXX_CCOMPLEX
#define _GLIBCXX_CCOMPLEX 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#if __cplusplus < 201103L
# include <bits/c++0x_warning.h>
diff --git a/libstdc++-v3/include/c_global/cctype b/libstdc++-v3/include/c_global/cctype
index 0c6d027..9eec9ca 100644
--- a/libstdc++-v3/include/c_global/cctype
+++ b/libstdc++-v3/include/c_global/cctype
@@ -39,7 +39,9 @@
#ifndef _GLIBCXX_CCTYPE
#define _GLIBCXX_CCTYPE 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <bits/c++config.h>
#include <ctype.h>
diff --git a/libstdc++-v3/include/c_global/cerrno b/libstdc++-v3/include/c_global/cerrno
index 5cad079..e11a412 100644
--- a/libstdc++-v3/include/c_global/cerrno
+++ b/libstdc++-v3/include/c_global/cerrno
@@ -39,7 +39,9 @@
#ifndef _GLIBCXX_CERRNO
#define _GLIBCXX_CERRNO 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <bits/c++config.h>
#include <errno.h>
diff --git a/libstdc++-v3/include/c_global/cfenv b/libstdc++-v3/include/c_global/cfenv
index fd32daa..b63f643 100644
--- a/libstdc++-v3/include/c_global/cfenv
+++ b/libstdc++-v3/include/c_global/cfenv
@@ -29,7 +29,9 @@
#ifndef _GLIBCXX_CFENV
#define _GLIBCXX_CFENV 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#if __cplusplus < 201103L
# include <bits/c++0x_warning.h>
diff --git a/libstdc++-v3/include/c_global/cfloat b/libstdc++-v3/include/c_global/cfloat
index bc90e75..622aba8 100644
--- a/libstdc++-v3/include/c_global/cfloat
+++ b/libstdc++-v3/include/c_global/cfloat
@@ -39,7 +39,9 @@
#ifndef _GLIBCXX_CFLOAT
#define _GLIBCXX_CFLOAT 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <bits/c++config.h>
#include <float.h>
diff --git a/libstdc++-v3/include/c_global/cinttypes b/libstdc++-v3/include/c_global/cinttypes
index a6f3dad..6ab84e3 100644
--- a/libstdc++-v3/include/c_global/cinttypes
+++ b/libstdc++-v3/include/c_global/cinttypes
@@ -29,7 +29,9 @@
#ifndef _GLIBCXX_CINTTYPES
#define _GLIBCXX_CINTTYPES 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#if __cplusplus < 201103L
# include <bits/c++0x_warning.h>
diff --git a/libstdc++-v3/include/c_global/ciso646 b/libstdc++-v3/include/c_global/ciso646
index 5b03993..6e26f9b 100644
--- a/libstdc++-v3/include/c_global/ciso646
+++ b/libstdc++-v3/include/c_global/ciso646
@@ -32,7 +32,10 @@
#ifndef _GLIBCXX_CISO646
#define _GLIBCXX_CISO646
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <bits/c++config.h>
+
#endif
diff --git a/libstdc++-v3/include/c_global/climits b/libstdc++-v3/include/c_global/climits
index ae1390b..5970a6c 100644
--- a/libstdc++-v3/include/c_global/climits
+++ b/libstdc++-v3/include/c_global/climits
@@ -39,7 +39,9 @@
#ifndef _GLIBCXX_CLIMITS
#define _GLIBCXX_CLIMITS 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <bits/c++config.h>
#include <limits.h>
diff --git a/libstdc++-v3/include/c_global/clocale b/libstdc++-v3/include/c_global/clocale
index b795f57..c9aeb74 100644
--- a/libstdc++-v3/include/c_global/clocale
+++ b/libstdc++-v3/include/c_global/clocale
@@ -39,7 +39,9 @@
#ifndef _GLIBCXX_CLOCALE
#define _GLIBCXX_CLOCALE 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <bits/c++config.h>
#include <locale.h>
diff --git a/libstdc++-v3/include/c_global/cmath b/libstdc++-v3/include/c_global/cmath
index 2b7186c..ca84f95 100644
--- a/libstdc++-v3/include/c_global/cmath
+++ b/libstdc++-v3/include/c_global/cmath
@@ -39,7 +39,9 @@
#ifndef _GLIBCXX_CMATH
#define _GLIBCXX_CMATH 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <bits/requires_hosted.h>
diff --git a/libstdc++-v3/include/c_global/csetjmp b/libstdc++-v3/include/c_global/csetjmp
index 6b1a484..645d94d 100644
--- a/libstdc++-v3/include/c_global/csetjmp
+++ b/libstdc++-v3/include/c_global/csetjmp
@@ -39,7 +39,9 @@
#ifndef _GLIBCXX_CSETJMP
#define _GLIBCXX_CSETJMP 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <bits/c++config.h>
#include <setjmp.h>
diff --git a/libstdc++-v3/include/c_global/csignal b/libstdc++-v3/include/c_global/csignal
index dc8a3e0..6f6613c 100644
--- a/libstdc++-v3/include/c_global/csignal
+++ b/libstdc++-v3/include/c_global/csignal
@@ -39,7 +39,9 @@
#ifndef _GLIBCXX_CSIGNAL
#define _GLIBCXX_CSIGNAL 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <bits/c++config.h>
#include <signal.h>
diff --git a/libstdc++-v3/include/c_global/cstdalign b/libstdc++-v3/include/c_global/cstdalign
index f7e4191..4f61058 100644
--- a/libstdc++-v3/include/c_global/cstdalign
+++ b/libstdc++-v3/include/c_global/cstdalign
@@ -29,7 +29,9 @@
#ifndef _GLIBCXX_CSTDALIGN
#define _GLIBCXX_CSTDALIGN 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#if __cplusplus < 201103L
# include <bits/c++0x_warning.h>
diff --git a/libstdc++-v3/include/c_global/cstdarg b/libstdc++-v3/include/c_global/cstdarg
index fd960c8..f6c50f7 100644
--- a/libstdc++-v3/include/c_global/cstdarg
+++ b/libstdc++-v3/include/c_global/cstdarg
@@ -39,7 +39,9 @@
#ifndef _GLIBCXX_CSTDARG
#define _GLIBCXX_CSTDARG 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#undef __need___va_list
#include <bits/c++config.h>
diff --git a/libstdc++-v3/include/c_global/cstdbool b/libstdc++-v3/include/c_global/cstdbool
index 5f4bc41..8d2e75d 100644
--- a/libstdc++-v3/include/c_global/cstdbool
+++ b/libstdc++-v3/include/c_global/cstdbool
@@ -29,7 +29,9 @@
#ifndef _GLIBCXX_CSTDBOOL
#define _GLIBCXX_CSTDBOOL 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#if __cplusplus < 201103L
# include <bits/c++0x_warning.h>
diff --git a/libstdc++-v3/include/c_global/cstddef b/libstdc++-v3/include/c_global/cstddef
index f49f56a..19611f3 100644
--- a/libstdc++-v3/include/c_global/cstddef
+++ b/libstdc++-v3/include/c_global/cstddef
@@ -39,7 +39,9 @@
#ifndef _GLIBCXX_CSTDDEF
#define _GLIBCXX_CSTDDEF 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#undef __need_wchar_t
#undef __need_ptrdiff_t
diff --git a/libstdc++-v3/include/c_global/cstdint b/libstdc++-v3/include/c_global/cstdint
index d31dc75..e203082 100644
--- a/libstdc++-v3/include/c_global/cstdint
+++ b/libstdc++-v3/include/c_global/cstdint
@@ -29,7 +29,9 @@
#ifndef _GLIBCXX_CSTDINT
#define _GLIBCXX_CSTDINT 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#if __cplusplus < 201103L
# include <bits/c++0x_warning.h>
diff --git a/libstdc++-v3/include/c_global/cstdio b/libstdc++-v3/include/c_global/cstdio
index 2b1f4fe..859b7a5 100644
--- a/libstdc++-v3/include/c_global/cstdio
+++ b/libstdc++-v3/include/c_global/cstdio
@@ -39,7 +39,9 @@
#ifndef _GLIBCXX_CSTDIO
#define _GLIBCXX_CSTDIO 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <bits/c++config.h>
#include <stdio.h>
diff --git a/libstdc++-v3/include/c_global/cstdlib b/libstdc++-v3/include/c_global/cstdlib
index 5d83baf..a5df4cd 100644
--- a/libstdc++-v3/include/c_global/cstdlib
+++ b/libstdc++-v3/include/c_global/cstdlib
@@ -39,7 +39,9 @@
#ifndef _GLIBCXX_CSTDLIB
#define _GLIBCXX_CSTDLIB 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <bits/c++config.h>
diff --git a/libstdc++-v3/include/c_global/cstring b/libstdc++-v3/include/c_global/cstring
index eba409f..d679c77 100644
--- a/libstdc++-v3/include/c_global/cstring
+++ b/libstdc++-v3/include/c_global/cstring
@@ -39,7 +39,9 @@
#ifndef _GLIBCXX_CSTRING
#define _GLIBCXX_CSTRING 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#define __glibcxx_want_freestanding_cstring
#include <bits/version.h>
diff --git a/libstdc++-v3/include/c_global/ctgmath b/libstdc++-v3/include/c_global/ctgmath
index 188a310..79c1a02 100644
--- a/libstdc++-v3/include/c_global/ctgmath
+++ b/libstdc++-v3/include/c_global/ctgmath
@@ -26,7 +26,9 @@
* This is a Standard C++ Library header.
*/
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#ifndef _GLIBCXX_CTGMATH
#define _GLIBCXX_CTGMATH 1
diff --git a/libstdc++-v3/include/c_global/ctime b/libstdc++-v3/include/c_global/ctime
index da16ba6..231de0d 100644
--- a/libstdc++-v3/include/c_global/ctime
+++ b/libstdc++-v3/include/c_global/ctime
@@ -39,7 +39,9 @@
#ifndef _GLIBCXX_CTIME
#define _GLIBCXX_CTIME 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <bits/c++config.h>
#include <time.h>
diff --git a/libstdc++-v3/include/c_global/cuchar b/libstdc++-v3/include/c_global/cuchar
index ebc3077..0b9f051 100644
--- a/libstdc++-v3/include/c_global/cuchar
+++ b/libstdc++-v3/include/c_global/cuchar
@@ -39,7 +39,9 @@
#ifndef _GLIBCXX_CUCHAR
#define _GLIBCXX_CUCHAR 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#if __cplusplus < 201103L
# include <bits/c++0x_warning.h>
diff --git a/libstdc++-v3/include/c_global/cwchar b/libstdc++-v3/include/c_global/cwchar
index fabe178..1bdb071 100644
--- a/libstdc++-v3/include/c_global/cwchar
+++ b/libstdc++-v3/include/c_global/cwchar
@@ -39,7 +39,9 @@
#ifndef _GLIBCXX_CWCHAR
#define _GLIBCXX_CWCHAR 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <bits/c++config.h>
diff --git a/libstdc++-v3/include/c_global/cwctype b/libstdc++-v3/include/c_global/cwctype
index 54c8572..c6e8d23 100644
--- a/libstdc++-v3/include/c_global/cwctype
+++ b/libstdc++-v3/include/c_global/cwctype
@@ -39,7 +39,9 @@
#ifndef _GLIBCXX_CWCTYPE
#define _GLIBCXX_CWCTYPE 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <bits/c++config.h>
diff --git a/libstdc++-v3/include/c_std/cassert b/libstdc++-v3/include/c_std/cassert
index 853cb91..5bd10ed 100644
--- a/libstdc++-v3/include/c_std/cassert
+++ b/libstdc++-v3/include/c_std/cassert
@@ -38,7 +38,9 @@
// No include guards on this header...
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <bits/c++config.h>
#include <assert.h>
diff --git a/libstdc++-v3/include/c_std/cctype b/libstdc++-v3/include/c_std/cctype
index 8ecf782..aec3dd0 100644
--- a/libstdc++-v3/include/c_std/cctype
+++ b/libstdc++-v3/include/c_std/cctype
@@ -39,7 +39,9 @@
#ifndef _GLIBCXX_CCTYPE
#define _GLIBCXX_CCTYPE 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <bits/c++config.h>
#include <ctype.h>
diff --git a/libstdc++-v3/include/c_std/cerrno b/libstdc++-v3/include/c_std/cerrno
index f68f8b3..cb2c0f4 100644
--- a/libstdc++-v3/include/c_std/cerrno
+++ b/libstdc++-v3/include/c_std/cerrno
@@ -39,7 +39,9 @@
#ifndef _GLIBCXX_CERRNO
#define _GLIBCXX_CERRNO 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <bits/c++config.h>
#include <errno.h>
diff --git a/libstdc++-v3/include/c_std/cfloat b/libstdc++-v3/include/c_std/cfloat
index e7c1596..670bcc1 100644
--- a/libstdc++-v3/include/c_std/cfloat
+++ b/libstdc++-v3/include/c_std/cfloat
@@ -39,7 +39,9 @@
#ifndef _GLIBCXX_CFLOAT
#define _GLIBCXX_CFLOAT 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <bits/c++config.h>
#include <float.h>
diff --git a/libstdc++-v3/include/c_std/ciso646 b/libstdc++-v3/include/c_std/ciso646
index d69d4ca..7971f0d 100644
--- a/libstdc++-v3/include/c_std/ciso646
+++ b/libstdc++-v3/include/c_std/ciso646
@@ -32,7 +32,9 @@
#ifndef _GLIBCXX_CISO646
#define _GLIBCXX_CISO646
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <bits/c++config.h>
#endif
diff --git a/libstdc++-v3/include/c_std/climits b/libstdc++-v3/include/c_std/climits
index dc38b86..0976eb1 100644
--- a/libstdc++-v3/include/c_std/climits
+++ b/libstdc++-v3/include/c_std/climits
@@ -39,7 +39,9 @@
#ifndef _GLIBCXX_CLIMITS
#define _GLIBCXX_CLIMITS 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <bits/c++config.h>
#include <limits.h>
diff --git a/libstdc++-v3/include/c_std/clocale b/libstdc++-v3/include/c_std/clocale
index d43bddb..da1d5ba 100644
--- a/libstdc++-v3/include/c_std/clocale
+++ b/libstdc++-v3/include/c_std/clocale
@@ -39,7 +39,9 @@
#ifndef _GLIBCXX_CLOCALE
#define _GLIBCXX_CLOCALE 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <bits/c++config.h>
#include <locale.h>
diff --git a/libstdc++-v3/include/c_std/cmath b/libstdc++-v3/include/c_std/cmath
index 76b04bd..ff7a11b 100644
--- a/libstdc++-v3/include/c_std/cmath
+++ b/libstdc++-v3/include/c_std/cmath
@@ -39,7 +39,9 @@
#ifndef _GLIBCXX_CMATH
#define _GLIBCXX_CMATH 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <bits/c++config.h>
#include <bits/cpp_type_traits.h>
diff --git a/libstdc++-v3/include/c_std/csetjmp b/libstdc++-v3/include/c_std/csetjmp
index 49cea55..bba568f 100644
--- a/libstdc++-v3/include/c_std/csetjmp
+++ b/libstdc++-v3/include/c_std/csetjmp
@@ -39,7 +39,9 @@
#ifndef _GLIBCXX_CSETJMP
#define _GLIBCXX_CSETJMP 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <bits/c++config.h>
#include <setjmp.h>
diff --git a/libstdc++-v3/include/c_std/csignal b/libstdc++-v3/include/c_std/csignal
index 08ce9a1..b19d4b8 100644
--- a/libstdc++-v3/include/c_std/csignal
+++ b/libstdc++-v3/include/c_std/csignal
@@ -39,7 +39,9 @@
#ifndef _GLIBCXX_CSIGNAL
#define _GLIBCXX_CSIGNAL 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <bits/c++config.h>
#include <signal.h>
diff --git a/libstdc++-v3/include/c_std/cstdarg b/libstdc++-v3/include/c_std/cstdarg
index 65ddd28..4c08695 100644
--- a/libstdc++-v3/include/c_std/cstdarg
+++ b/libstdc++-v3/include/c_std/cstdarg
@@ -39,7 +39,9 @@
#ifndef _GLIBCXX_CSTDARG
#define _GLIBCXX_CSTDARG 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <bits/c++config.h>
#include <stdarg.h>
diff --git a/libstdc++-v3/include/c_std/cstddef b/libstdc++-v3/include/c_std/cstddef
index 8199fb9..2236d52 100644
--- a/libstdc++-v3/include/c_std/cstddef
+++ b/libstdc++-v3/include/c_std/cstddef
@@ -39,7 +39,9 @@
#ifndef _GLIBCXX_CSTDDEF
#define _GLIBCXX_CSTDDEF 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <bits/c++config.h>
#include <stddef.h>
diff --git a/libstdc++-v3/include/c_std/cstdio b/libstdc++-v3/include/c_std/cstdio
index ee3ca39..d57f2cf 100644
--- a/libstdc++-v3/include/c_std/cstdio
+++ b/libstdc++-v3/include/c_std/cstdio
@@ -39,7 +39,9 @@
#ifndef _GLIBCXX_CSTDIO
#define _GLIBCXX_CSTDIO 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <bits/c++config.h>
#include <stdio.h>
diff --git a/libstdc++-v3/include/c_std/cstdlib b/libstdc++-v3/include/c_std/cstdlib
index db39abf..5da1739 100644
--- a/libstdc++-v3/include/c_std/cstdlib
+++ b/libstdc++-v3/include/c_std/cstdlib
@@ -39,7 +39,9 @@
#ifndef _GLIBCXX_CSTDLIB
#define _GLIBCXX_CSTDLIB 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <bits/c++config.h>
diff --git a/libstdc++-v3/include/c_std/cstring b/libstdc++-v3/include/c_std/cstring
index 5489dcd..c043383 100644
--- a/libstdc++-v3/include/c_std/cstring
+++ b/libstdc++-v3/include/c_std/cstring
@@ -39,7 +39,9 @@
#ifndef _GLIBCXX_CSTRING
#define _GLIBCXX_CSTRING 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <bits/c++config.h>
#include <string.h>
diff --git a/libstdc++-v3/include/c_std/ctime b/libstdc++-v3/include/c_std/ctime
index 9500823..b2c92ec 100644
--- a/libstdc++-v3/include/c_std/ctime
+++ b/libstdc++-v3/include/c_std/ctime
@@ -39,7 +39,9 @@
#ifndef _GLIBCXX_CTIME
#define _GLIBCXX_CTIME 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <bits/c++config.h>
#include <time.h>
diff --git a/libstdc++-v3/include/c_std/cuchar b/libstdc++-v3/include/c_std/cuchar
index 8aa0710..7a3efd7 100644
--- a/libstdc++-v3/include/c_std/cuchar
+++ b/libstdc++-v3/include/c_std/cuchar
@@ -39,7 +39,9 @@
#ifndef _GLIBCXX_CUCHAR
#define _GLIBCXX_CUCHAR 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#if __cplusplus < 201103L
# include <bits/c++0x_warning.h>
diff --git a/libstdc++-v3/include/c_std/cwchar b/libstdc++-v3/include/c_std/cwchar
index a16cdf9..6608f40 100644
--- a/libstdc++-v3/include/c_std/cwchar
+++ b/libstdc++-v3/include/c_std/cwchar
@@ -39,7 +39,9 @@
#ifndef _GLIBCXX_CWCHAR
#define _GLIBCXX_CWCHAR 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <bits/c++config.h>
diff --git a/libstdc++-v3/include/c_std/cwctype b/libstdc++-v3/include/c_std/cwctype
index ab63bcf..ae90a34 100644
--- a/libstdc++-v3/include/c_std/cwctype
+++ b/libstdc++-v3/include/c_std/cwctype
@@ -39,7 +39,9 @@
#ifndef _GLIBCXX_CWCTYPE
#define _GLIBCXX_CWCTYPE 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <bits/c++config.h>
diff --git a/libstdc++-v3/include/debug/array b/libstdc++-v3/include/debug/array
index 9cb3aca5..8931f0e 100644
--- a/libstdc++-v3/include/debug/array
+++ b/libstdc++-v3/include/debug/array
@@ -29,7 +29,9 @@
#ifndef _GLIBCXX_DEBUG_ARRAY
#define _GLIBCXX_DEBUG_ARRAY 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <array>
diff --git a/libstdc++-v3/include/debug/bitset b/libstdc++-v3/include/debug/bitset
index a0d62f5..f464a64 100644
--- a/libstdc++-v3/include/debug/bitset
+++ b/libstdc++-v3/include/debug/bitset
@@ -29,7 +29,9 @@
#ifndef _GLIBCXX_DEBUG_BITSET
#define _GLIBCXX_DEBUG_BITSET
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <bitset>
#include <debug/safe_sequence.h>
diff --git a/libstdc++-v3/include/debug/deque b/libstdc++-v3/include/debug/deque
index 3c64215..8f15ea5 100644
--- a/libstdc++-v3/include/debug/deque
+++ b/libstdc++-v3/include/debug/deque
@@ -29,7 +29,9 @@
#ifndef _GLIBCXX_DEBUG_DEQUE
#define _GLIBCXX_DEBUG_DEQUE 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <bits/c++config.h>
namespace std _GLIBCXX_VISIBILITY(default) { namespace __debug {
diff --git a/libstdc++-v3/include/debug/forward_list b/libstdc++-v3/include/debug/forward_list
index ff793f2..3f94a90 100644
--- a/libstdc++-v3/include/debug/forward_list
+++ b/libstdc++-v3/include/debug/forward_list
@@ -29,7 +29,9 @@
#ifndef _GLIBCXX_DEBUG_FORWARD_LIST
#define _GLIBCXX_DEBUG_FORWARD_LIST 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <bits/c++config.h>
namespace std _GLIBCXX_VISIBILITY(default) { namespace __debug {
diff --git a/libstdc++-v3/include/debug/list b/libstdc++-v3/include/debug/list
index e010a69..60752b4 100644
--- a/libstdc++-v3/include/debug/list
+++ b/libstdc++-v3/include/debug/list
@@ -29,7 +29,9 @@
#ifndef _GLIBCXX_DEBUG_LIST
#define _GLIBCXX_DEBUG_LIST 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <bits/c++config.h>
namespace std _GLIBCXX_VISIBILITY(default) { namespace __debug {
diff --git a/libstdc++-v3/include/debug/map b/libstdc++-v3/include/debug/map
index 60ca4bd..3d8406c 100644
--- a/libstdc++-v3/include/debug/map
+++ b/libstdc++-v3/include/debug/map
@@ -29,7 +29,9 @@
#ifndef _GLIBCXX_DEBUG_MAP
#define _GLIBCXX_DEBUG_MAP 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <bits/c++config.h>
namespace std _GLIBCXX_VISIBILITY(default) { namespace __debug {
diff --git a/libstdc++-v3/include/debug/set b/libstdc++-v3/include/debug/set
index 40e7bc8..0eaf54e 100644
--- a/libstdc++-v3/include/debug/set
+++ b/libstdc++-v3/include/debug/set
@@ -29,7 +29,9 @@
#ifndef _GLIBCXX_DEBUG_SET
#define _GLIBCXX_DEBUG_SET 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <bits/c++config.h>
namespace std _GLIBCXX_VISIBILITY(default) { namespace __debug {
diff --git a/libstdc++-v3/include/debug/string b/libstdc++-v3/include/debug/string
index 0d39a97..1b245db 100644
--- a/libstdc++-v3/include/debug/string
+++ b/libstdc++-v3/include/debug/string
@@ -29,7 +29,9 @@
#ifndef _GLIBCXX_DEBUG_STRING
#define _GLIBCXX_DEBUG_STRING 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <string>
#include <debug/safe_sequence.h>
diff --git a/libstdc++-v3/include/debug/unordered_map b/libstdc++-v3/include/debug/unordered_map
index 8a969d81..1acafd8 100644
--- a/libstdc++-v3/include/debug/unordered_map
+++ b/libstdc++-v3/include/debug/unordered_map
@@ -29,7 +29,9 @@
#ifndef _GLIBCXX_DEBUG_UNORDERED_MAP
#define _GLIBCXX_DEBUG_UNORDERED_MAP 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#if __cplusplus < 201103L
# include <bits/c++0x_warning.h>
diff --git a/libstdc++-v3/include/debug/unordered_set b/libstdc++-v3/include/debug/unordered_set
index f6a8b66..7f199a9 100644
--- a/libstdc++-v3/include/debug/unordered_set
+++ b/libstdc++-v3/include/debug/unordered_set
@@ -29,7 +29,9 @@
#ifndef _GLIBCXX_DEBUG_UNORDERED_SET
#define _GLIBCXX_DEBUG_UNORDERED_SET 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#if __cplusplus < 201103L
# include <bits/c++0x_warning.h>
diff --git a/libstdc++-v3/include/debug/vector b/libstdc++-v3/include/debug/vector
index 2168229..fe43a37 100644
--- a/libstdc++-v3/include/debug/vector
+++ b/libstdc++-v3/include/debug/vector
@@ -29,7 +29,9 @@
#ifndef _GLIBCXX_DEBUG_VECTOR
#define _GLIBCXX_DEBUG_VECTOR 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <bits/c++config.h>
namespace std _GLIBCXX_VISIBILITY(default) { namespace __debug {
diff --git a/libstdc++-v3/include/decimal/decimal b/libstdc++-v3/include/decimal/decimal
index a64ddde4..1d9e034 100644
--- a/libstdc++-v3/include/decimal/decimal
+++ b/libstdc++-v3/include/decimal/decimal
@@ -31,7 +31,9 @@
#ifndef _GLIBCXX_DECIMAL
#define _GLIBCXX_DECIMAL 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wpedantic" // DF suffix
diff --git a/libstdc++-v3/include/decimal/decimal.h b/libstdc++-v3/include/decimal/decimal.h
index 99376a6..36557b2 100644
--- a/libstdc++-v3/include/decimal/decimal.h
+++ b/libstdc++-v3/include/decimal/decimal.h
@@ -33,7 +33,9 @@
#ifndef _GLIBCXX_DECIMAL_IMPL
#define _GLIBCXX_DECIMAL_IMPL 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
namespace std _GLIBCXX_VISIBILITY(default)
{
diff --git a/libstdc++-v3/include/experimental/algorithm b/libstdc++-v3/include/experimental/algorithm
index 1953dab..49403c9 100644
--- a/libstdc++-v3/include/experimental/algorithm
+++ b/libstdc++-v3/include/experimental/algorithm
@@ -30,7 +30,9 @@
#ifndef _GLIBCXX_EXPERIMENTAL_ALGORITHM
#define _GLIBCXX_EXPERIMENTAL_ALGORITHM 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <bits/requires_hosted.h> // experimental is currently omitted
diff --git a/libstdc++-v3/include/experimental/any b/libstdc++-v3/include/experimental/any
index 3db30df..79b6268 100644
--- a/libstdc++-v3/include/experimental/any
+++ b/libstdc++-v3/include/experimental/any
@@ -30,7 +30,9 @@
#ifndef _GLIBCXX_EXPERIMENTAL_ANY
#define _GLIBCXX_EXPERIMENTAL_ANY 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <bits/requires_hosted.h> // experimental is currently omitted
diff --git a/libstdc++-v3/include/experimental/array b/libstdc++-v3/include/experimental/array
index bb46e0f..14a2e6e 100644
--- a/libstdc++-v3/include/experimental/array
+++ b/libstdc++-v3/include/experimental/array
@@ -30,7 +30,9 @@
#ifndef _GLIBCXX_EXPERIMENTAL_ARRAY
#define _GLIBCXX_EXPERIMENTAL_ARRAY 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <bits/requires_hosted.h> // experimental is currently omitted
diff --git a/libstdc++-v3/include/experimental/bits/net.h b/libstdc++-v3/include/experimental/bits/net.h
index 9697069..d536d86 100644
--- a/libstdc++-v3/include/experimental/bits/net.h
+++ b/libstdc++-v3/include/experimental/bits/net.h
@@ -30,7 +30,9 @@
#ifndef _GLIBCXX_EXPERIMENTAL_NET_H
#define _GLIBCXX_EXPERIMENTAL_NET_H 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#if __cplusplus >= 201402L
diff --git a/libstdc++-v3/include/experimental/bits/shared_ptr.h b/libstdc++-v3/include/experimental/bits/shared_ptr.h
index f30d9a7..9a5659c 100644
--- a/libstdc++-v3/include/experimental/bits/shared_ptr.h
+++ b/libstdc++-v3/include/experimental/bits/shared_ptr.h
@@ -30,7 +30,9 @@
#ifndef _GLIBCXX_EXPERIMENTAL_SHARED_PTR_H
#define _GLIBCXX_EXPERIMENTAL_SHARED_PTR_H 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#if __cplusplus >= 201402L
diff --git a/libstdc++-v3/include/experimental/bits/string_view.tcc b/libstdc++-v3/include/experimental/bits/string_view.tcc
index 80de34d..c0e1ab5 100644
--- a/libstdc++-v3/include/experimental/bits/string_view.tcc
+++ b/libstdc++-v3/include/experimental/bits/string_view.tcc
@@ -34,7 +34,9 @@
#ifndef _GLIBCXX_EXPERIMENTAL_STRING_VIEW_TCC
#define _GLIBCXX_EXPERIMENTAL_STRING_VIEW_TCC 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#if __cplusplus >= 201402L
diff --git a/libstdc++-v3/include/experimental/buffer b/libstdc++-v3/include/experimental/buffer
index 054150e..87137dc 100644
--- a/libstdc++-v3/include/experimental/buffer
+++ b/libstdc++-v3/include/experimental/buffer
@@ -30,7 +30,9 @@
#ifndef _GLIBCXX_EXPERIMENTAL_BUFFER
#define _GLIBCXX_EXPERIMENTAL_BUFFER 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <bits/requires_hosted.h> // experimental is currently omitted
diff --git a/libstdc++-v3/include/experimental/chrono b/libstdc++-v3/include/experimental/chrono
index c5395ca..61ca839 100644
--- a/libstdc++-v3/include/experimental/chrono
+++ b/libstdc++-v3/include/experimental/chrono
@@ -34,7 +34,9 @@
#ifndef _GLIBCXX_EXPERIMENTAL_CHRONO
#define _GLIBCXX_EXPERIMENTAL_CHRONO 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <bits/requires_hosted.h> // experimental is currently omitted
diff --git a/libstdc++-v3/include/experimental/contract b/libstdc++-v3/include/experimental/contract
index 84f4433..98d42ba 100644
--- a/libstdc++-v3/include/experimental/contract
+++ b/libstdc++-v3/include/experimental/contract
@@ -30,7 +30,9 @@
#ifndef _GLIBCXX_CONTRACT
#define _GLIBCXX_CONTRACT 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#if __cplusplus >= 201703L
diff --git a/libstdc++-v3/include/experimental/deque b/libstdc++-v3/include/experimental/deque
index de5d46c..3ee39de 100644
--- a/libstdc++-v3/include/experimental/deque
+++ b/libstdc++-v3/include/experimental/deque
@@ -30,7 +30,9 @@
#ifndef _GLIBCXX_EXPERIMENTAL_DEQUE
#define _GLIBCXX_EXPERIMENTAL_DEQUE 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <bits/requires_hosted.h> // experimental is currently omitted
diff --git a/libstdc++-v3/include/experimental/executor b/libstdc++-v3/include/experimental/executor
index f64783b..cce5347 100644
--- a/libstdc++-v3/include/experimental/executor
+++ b/libstdc++-v3/include/experimental/executor
@@ -30,7 +30,9 @@
#ifndef _GLIBCXX_EXPERIMENTAL_EXECUTOR
#define _GLIBCXX_EXPERIMENTAL_EXECUTOR 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <bits/requires_hosted.h> // experimental is currently omitted
diff --git a/libstdc++-v3/include/experimental/filesystem b/libstdc++-v3/include/experimental/filesystem
index 82df075..182b148 100644
--- a/libstdc++-v3/include/experimental/filesystem
+++ b/libstdc++-v3/include/experimental/filesystem
@@ -30,7 +30,9 @@
#ifndef _GLIBCXX_EXPERIMENTAL_FILESYSTEM
#define _GLIBCXX_EXPERIMENTAL_FILESYSTEM 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <bits/requires_hosted.h> // experimental is currently omitted
diff --git a/libstdc++-v3/include/experimental/forward_list b/libstdc++-v3/include/experimental/forward_list
index 35d50f4..e1e3b03 100644
--- a/libstdc++-v3/include/experimental/forward_list
+++ b/libstdc++-v3/include/experimental/forward_list
@@ -30,7 +30,9 @@
#ifndef _GLIBCXX_EXPERIMENTAL_FORWARD_LIST
#define _GLIBCXX_EXPERIMENTAL_FORWARD_LIST 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <bits/requires_hosted.h> // experimental is currently omitted
diff --git a/libstdc++-v3/include/experimental/functional b/libstdc++-v3/include/experimental/functional
index b145173..cf420af 100644
--- a/libstdc++-v3/include/experimental/functional
+++ b/libstdc++-v3/include/experimental/functional
@@ -30,7 +30,9 @@
#ifndef _GLIBCXX_EXPERIMENTAL_FUNCTIONAL
#define _GLIBCXX_EXPERIMENTAL_FUNCTIONAL 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <bits/requires_hosted.h> // experimental is currently omitted
diff --git a/libstdc++-v3/include/experimental/internet b/libstdc++-v3/include/experimental/internet
index 3f5090c..d6b1319a 100644
--- a/libstdc++-v3/include/experimental/internet
+++ b/libstdc++-v3/include/experimental/internet
@@ -30,7 +30,9 @@
#ifndef _GLIBCXX_EXPERIMENTAL_INTERNET
#define _GLIBCXX_EXPERIMENTAL_INTERNET
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <bits/requires_hosted.h> // experimental is currently omitted
diff --git a/libstdc++-v3/include/experimental/io_context b/libstdc++-v3/include/experimental/io_context
index 8b0dba7..3bcc145 100644
--- a/libstdc++-v3/include/experimental/io_context
+++ b/libstdc++-v3/include/experimental/io_context
@@ -30,7 +30,9 @@
#ifndef _GLIBCXX_EXPERIMENTAL_IO_SERVICE
#define _GLIBCXX_EXPERIMENTAL_IO_SERVICE 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <bits/requires_hosted.h> // experimental is currently omitted
diff --git a/libstdc++-v3/include/experimental/iterator b/libstdc++-v3/include/experimental/iterator
index 51ecd29..96dfe84 100644
--- a/libstdc++-v3/include/experimental/iterator
+++ b/libstdc++-v3/include/experimental/iterator
@@ -34,7 +34,9 @@
#ifndef _GLIBCXX_EXPERIMENTAL_ITERATOR
#define _GLIBCXX_EXPERIMENTAL_ITERATOR 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <bits/requires_hosted.h> // experimental is currently omitted
diff --git a/libstdc++-v3/include/experimental/list b/libstdc++-v3/include/experimental/list
index 5bebf3c..27c9dfd 100644
--- a/libstdc++-v3/include/experimental/list
+++ b/libstdc++-v3/include/experimental/list
@@ -30,7 +30,9 @@
#ifndef _GLIBCXX_EXPERIMENTAL_LIST
#define _GLIBCXX_EXPERIMENTAL_LIST 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <bits/requires_hosted.h> // experimental is currently omitted
diff --git a/libstdc++-v3/include/experimental/map b/libstdc++-v3/include/experimental/map
index 414c023..3f0f533 100644
--- a/libstdc++-v3/include/experimental/map
+++ b/libstdc++-v3/include/experimental/map
@@ -30,7 +30,9 @@
#ifndef _GLIBCXX_EXPERIMENTAL_MAP
#define _GLIBCXX_EXPERIMENTAL_MAP 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <bits/requires_hosted.h> // experimental is currently omitted
diff --git a/libstdc++-v3/include/experimental/memory b/libstdc++-v3/include/experimental/memory
index ca6a364..0f8f1b8 100644
--- a/libstdc++-v3/include/experimental/memory
+++ b/libstdc++-v3/include/experimental/memory
@@ -34,7 +34,9 @@
#ifndef _GLIBCXX_EXPERIMENTAL_MEMORY
#define _GLIBCXX_EXPERIMENTAL_MEMORY 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <bits/requires_hosted.h> // experimental is currently omitted
diff --git a/libstdc++-v3/include/experimental/memory_resource b/libstdc++-v3/include/experimental/memory_resource
index bc2fdbf..c36bb88 100644
--- a/libstdc++-v3/include/experimental/memory_resource
+++ b/libstdc++-v3/include/experimental/memory_resource
@@ -30,7 +30,9 @@
#ifndef _GLIBCXX_EXPERIMENTAL_MEMORY_RESOURCE
#define _GLIBCXX_EXPERIMENTAL_MEMORY_RESOURCE 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <bits/requires_hosted.h> // experimental is currently omitted
diff --git a/libstdc++-v3/include/experimental/net b/libstdc++-v3/include/experimental/net
index a84fdf4..90c604c 100644
--- a/libstdc++-v3/include/experimental/net
+++ b/libstdc++-v3/include/experimental/net
@@ -30,7 +30,9 @@
#ifndef _GLIBCXX_EXPERIMENTAL_NET
#define _GLIBCXX_EXPERIMENTAL_NET
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <bits/requires_hosted.h> // experimental is currently omitted
diff --git a/libstdc++-v3/include/experimental/netfwd b/libstdc++-v3/include/experimental/netfwd
index e273810..17f8676 100644
--- a/libstdc++-v3/include/experimental/netfwd
+++ b/libstdc++-v3/include/experimental/netfwd
@@ -30,7 +30,9 @@
#ifndef _GLIBCXX_EXPERIMENTAL_NETFWD
#define _GLIBCXX_EXPERIMENTAL_NETFWD 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <bits/requires_hosted.h> // experimental is currently omitted
diff --git a/libstdc++-v3/include/experimental/numeric b/libstdc++-v3/include/experimental/numeric
index 42580b7..7f06d56 100644
--- a/libstdc++-v3/include/experimental/numeric
+++ b/libstdc++-v3/include/experimental/numeric
@@ -34,7 +34,9 @@
#ifndef _GLIBCXX_EXPERIMENTAL_NUMERIC
#define _GLIBCXX_EXPERIMENTAL_NUMERIC 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <bits/requires_hosted.h> // experimental is currently omitted
diff --git a/libstdc++-v3/include/experimental/propagate_const b/libstdc++-v3/include/experimental/propagate_const
index a3682ae..829a82d 100644
--- a/libstdc++-v3/include/experimental/propagate_const
+++ b/libstdc++-v3/include/experimental/propagate_const
@@ -30,7 +30,9 @@
#ifndef _GLIBCXX_EXPERIMENTAL_PROPAGATE_CONST
#define _GLIBCXX_EXPERIMENTAL_PROPAGATE_CONST 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <bits/requires_hosted.h> // experimental is currently omitted
diff --git a/libstdc++-v3/include/experimental/ratio b/libstdc++-v3/include/experimental/ratio
index 5b96e72..1325bea 100644
--- a/libstdc++-v3/include/experimental/ratio
+++ b/libstdc++-v3/include/experimental/ratio
@@ -34,7 +34,9 @@
#ifndef _GLIBCXX_EXPERIMENTAL_RATIO
#define _GLIBCXX_EXPERIMENTAL_RATIO 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <bits/requires_hosted.h> // experimental is currently omitted
diff --git a/libstdc++-v3/include/experimental/regex b/libstdc++-v3/include/experimental/regex
index d04dc1e..3c7802c 100644
--- a/libstdc++-v3/include/experimental/regex
+++ b/libstdc++-v3/include/experimental/regex
@@ -30,7 +30,9 @@
#ifndef _GLIBCXX_EXPERIMENTAL_REGEX
#define _GLIBCXX_EXPERIMENTAL_REGEX 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <bits/requires_hosted.h> // experimental is currently omitted
diff --git a/libstdc++-v3/include/experimental/scope b/libstdc++-v3/include/experimental/scope
index ea273e8..6e1d342 100644
--- a/libstdc++-v3/include/experimental/scope
+++ b/libstdc++-v3/include/experimental/scope
@@ -30,7 +30,9 @@
#ifndef _GLIBCXX_EXPERIMENTAL_SCOPE
#define _GLIBCXX_EXPERIMENTAL_SCOPE 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <bits/requires_hosted.h> // experimental is currently omitted
diff --git a/libstdc++-v3/include/experimental/set b/libstdc++-v3/include/experimental/set
index 4ccbf6f..6758119 100644
--- a/libstdc++-v3/include/experimental/set
+++ b/libstdc++-v3/include/experimental/set
@@ -30,7 +30,9 @@
#ifndef _GLIBCXX_EXPERIMENTAL_SET
#define _GLIBCXX_EXPERIMENTAL_SET 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <bits/requires_hosted.h> // experimental is currently omitted
diff --git a/libstdc++-v3/include/experimental/socket b/libstdc++-v3/include/experimental/socket
index 62beb43..8fb9c03 100644
--- a/libstdc++-v3/include/experimental/socket
+++ b/libstdc++-v3/include/experimental/socket
@@ -30,7 +30,9 @@
#ifndef _GLIBCXX_EXPERIMENTAL_SOCKET
#define _GLIBCXX_EXPERIMENTAL_SOCKET
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <bits/requires_hosted.h> // experimental is currently omitted
diff --git a/libstdc++-v3/include/experimental/string b/libstdc++-v3/include/experimental/string
index d6b18b9..8ab6041 100644
--- a/libstdc++-v3/include/experimental/string
+++ b/libstdc++-v3/include/experimental/string
@@ -30,7 +30,9 @@
#ifndef _GLIBCXX_EXPERIMENTAL_STRING
#define _GLIBCXX_EXPERIMENTAL_STRING 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <bits/requires_hosted.h> // experimental is currently omitted
diff --git a/libstdc++-v3/include/experimental/string_view b/libstdc++-v3/include/experimental/string_view
index 4eb1a84..8929748b 100644
--- a/libstdc++-v3/include/experimental/string_view
+++ b/libstdc++-v3/include/experimental/string_view
@@ -34,7 +34,9 @@
#ifndef _GLIBCXX_EXPERIMENTAL_STRING_VIEW
#define _GLIBCXX_EXPERIMENTAL_STRING_VIEW 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <bits/requires_hosted.h> // experimental is currently omitted
diff --git a/libstdc++-v3/include/experimental/synchronized_value b/libstdc++-v3/include/experimental/synchronized_value
index 9a91da9..93755e7 100644
--- a/libstdc++-v3/include/experimental/synchronized_value
+++ b/libstdc++-v3/include/experimental/synchronized_value
@@ -30,7 +30,9 @@
#ifndef _GLIBCXX_EXPERIMENTAL_SYNCVAL
#define _GLIBCXX_EXPERIMENTAL_SYNCVAL 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <bits/requires_hosted.h> // for std::mutex
diff --git a/libstdc++-v3/include/experimental/system_error b/libstdc++-v3/include/experimental/system_error
index 491b9dc..913995a 100644
--- a/libstdc++-v3/include/experimental/system_error
+++ b/libstdc++-v3/include/experimental/system_error
@@ -34,7 +34,9 @@
#ifndef _GLIBCXX_EXPERIMENTAL_SYSTEM_ERROR
#define _GLIBCXX_EXPERIMENTAL_SYSTEM_ERROR 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <bits/requires_hosted.h> // experimental is currently omitted
diff --git a/libstdc++-v3/include/experimental/timer b/libstdc++-v3/include/experimental/timer
index 8d6e328..1b60f70 100644
--- a/libstdc++-v3/include/experimental/timer
+++ b/libstdc++-v3/include/experimental/timer
@@ -30,7 +30,9 @@
#ifndef _GLIBCXX_EXPERIMENTAL_TIMER
#define _GLIBCXX_EXPERIMENTAL_TIMER 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <bits/requires_hosted.h> // experimental is currently omitted
diff --git a/libstdc++-v3/include/experimental/tuple b/libstdc++-v3/include/experimental/tuple
index f67f738..c38eb4b 100644
--- a/libstdc++-v3/include/experimental/tuple
+++ b/libstdc++-v3/include/experimental/tuple
@@ -30,7 +30,9 @@
#ifndef _GLIBCXX_EXPERIMENTAL_TUPLE
#define _GLIBCXX_EXPERIMENTAL_TUPLE 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <bits/requires_hosted.h> // experimental is currently omitted
diff --git a/libstdc++-v3/include/experimental/type_traits b/libstdc++-v3/include/experimental/type_traits
index 3fa88a3..25bb217 100644
--- a/libstdc++-v3/include/experimental/type_traits
+++ b/libstdc++-v3/include/experimental/type_traits
@@ -41,7 +41,9 @@
#ifndef _GLIBCXX_EXPERIMENTAL_TYPE_TRAITS
#define _GLIBCXX_EXPERIMENTAL_TYPE_TRAITS 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#if __cplusplus >= 201402L
diff --git a/libstdc++-v3/include/experimental/unordered_map b/libstdc++-v3/include/experimental/unordered_map
index c94bd2c..06a439a 100644
--- a/libstdc++-v3/include/experimental/unordered_map
+++ b/libstdc++-v3/include/experimental/unordered_map
@@ -30,7 +30,9 @@
#ifndef _GLIBCXX_EXPERIMENTAL_UNORDERED_MAP
#define _GLIBCXX_EXPERIMENTAL_UNORDERED_MAP 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <bits/requires_hosted.h> // experimental is currently omitted
diff --git a/libstdc++-v3/include/experimental/unordered_set b/libstdc++-v3/include/experimental/unordered_set
index 128312c..e752740 100644
--- a/libstdc++-v3/include/experimental/unordered_set
+++ b/libstdc++-v3/include/experimental/unordered_set
@@ -30,7 +30,9 @@
#ifndef _GLIBCXX_EXPERIMENTAL_UNORDERED_SET
#define _GLIBCXX_EXPERIMENTAL_UNORDERED_SET 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <bits/requires_hosted.h> // experimental is currently omitted
diff --git a/libstdc++-v3/include/experimental/vector b/libstdc++-v3/include/experimental/vector
index a51fdca..badfe68 100644
--- a/libstdc++-v3/include/experimental/vector
+++ b/libstdc++-v3/include/experimental/vector
@@ -30,7 +30,9 @@
#ifndef _GLIBCXX_EXPERIMENTAL_VECTOR
#define _GLIBCXX_EXPERIMENTAL_VECTOR 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <bits/requires_hosted.h> // experimental is currently omitted
diff --git a/libstdc++-v3/include/ext/algorithm b/libstdc++-v3/include/ext/algorithm
index a7324fd..4d70dff 100644
--- a/libstdc++-v3/include/ext/algorithm
+++ b/libstdc++-v3/include/ext/algorithm
@@ -56,7 +56,9 @@
#ifndef _EXT_ALGORITHM
#define _EXT_ALGORITHM 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <bits/requires_hosted.h> // GNU extensions are currently omitted
diff --git a/libstdc++-v3/include/ext/aligned_buffer.h b/libstdc++-v3/include/ext/aligned_buffer.h
index 9c2c628..25f9b25 100644
--- a/libstdc++-v3/include/ext/aligned_buffer.h
+++ b/libstdc++-v3/include/ext/aligned_buffer.h
@@ -29,7 +29,9 @@
#ifndef _ALIGNED_BUFFER_H
#define _ALIGNED_BUFFER_H 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#if __cplusplus >= 201103L
# include <type_traits>
diff --git a/libstdc++-v3/include/ext/alloc_traits.h b/libstdc++-v3/include/ext/alloc_traits.h
index f778c4d..d256053 100644
--- a/libstdc++-v3/include/ext/alloc_traits.h
+++ b/libstdc++-v3/include/ext/alloc_traits.h
@@ -29,7 +29,9 @@
#ifndef _EXT_ALLOC_TRAITS_H
#define _EXT_ALLOC_TRAITS_H 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
# include <bits/alloc_traits.h>
diff --git a/libstdc++-v3/include/ext/atomicity.h b/libstdc++-v3/include/ext/atomicity.h
index cc2fe3b..964a634 100644
--- a/libstdc++-v3/include/ext/atomicity.h
+++ b/libstdc++-v3/include/ext/atomicity.h
@@ -29,7 +29,9 @@
#ifndef _GLIBCXX_ATOMICITY_H
#define _GLIBCXX_ATOMICITY_H 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <bits/c++config.h>
#include <bits/gthr.h>
diff --git a/libstdc++-v3/include/ext/cmath b/libstdc++-v3/include/ext/cmath
index a180916..d4bab41 100644
--- a/libstdc++-v3/include/ext/cmath
+++ b/libstdc++-v3/include/ext/cmath
@@ -29,7 +29,9 @@
#ifndef _EXT_CMATH
#define _EXT_CMATH 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <bits/requires_hosted.h> // GNU extensions are currently omitted
diff --git a/libstdc++-v3/include/ext/concurrence.h b/libstdc++-v3/include/ext/concurrence.h
index 8188c13..8191e7a 100644
--- a/libstdc++-v3/include/ext/concurrence.h
+++ b/libstdc++-v3/include/ext/concurrence.h
@@ -29,7 +29,9 @@
#ifndef _CONCURRENCE_H
#define _CONCURRENCE_H 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <exception>
#include <bits/gthr.h>
diff --git a/libstdc++-v3/include/ext/functional b/libstdc++-v3/include/ext/functional
index bc8312a..dfc297d 100644
--- a/libstdc++-v3/include/ext/functional
+++ b/libstdc++-v3/include/ext/functional
@@ -56,7 +56,9 @@
#ifndef _EXT_FUNCTIONAL
#define _EXT_FUNCTIONAL 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <bits/requires_hosted.h> // GNU extensions are currently omitted
diff --git a/libstdc++-v3/include/ext/iterator b/libstdc++-v3/include/ext/iterator
index d3e5e7e..24df891 100644
--- a/libstdc++-v3/include/ext/iterator
+++ b/libstdc++-v3/include/ext/iterator
@@ -56,7 +56,9 @@
#ifndef _EXT_ITERATOR
#define _EXT_ITERATOR 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <bits/concept_check.h>
#include <iterator>
diff --git a/libstdc++-v3/include/ext/memory b/libstdc++-v3/include/ext/memory
index ebbebb6..363cf69 100644
--- a/libstdc++-v3/include/ext/memory
+++ b/libstdc++-v3/include/ext/memory
@@ -56,7 +56,9 @@
#ifndef _EXT_MEMORY
#define _EXT_MEMORY 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <bits/requires_hosted.h> // GNU extensions are currently omitted
diff --git a/libstdc++-v3/include/ext/numeric b/libstdc++-v3/include/ext/numeric
index 1123694..797341c 100644
--- a/libstdc++-v3/include/ext/numeric
+++ b/libstdc++-v3/include/ext/numeric
@@ -56,7 +56,9 @@
#ifndef _EXT_NUMERIC
#define _EXT_NUMERIC 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <bits/requires_hosted.h> // GNU extensions are currently omitted
diff --git a/libstdc++-v3/include/ext/numeric_traits.h b/libstdc++-v3/include/ext/numeric_traits.h
index b2723bf..91fe18e 100644
--- a/libstdc++-v3/include/ext/numeric_traits.h
+++ b/libstdc++-v3/include/ext/numeric_traits.h
@@ -29,7 +29,9 @@
#ifndef _EXT_NUMERIC_TRAITS
#define _EXT_NUMERIC_TRAITS 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <bits/cpp_type_traits.h>
#include <ext/type_traits.h>
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/resize_policy/hash_prime_size_policy_imp.hpp b/libstdc++-v3/include/ext/pb_ds/detail/resize_policy/hash_prime_size_policy_imp.hpp
index 52c8329..8fdec6d 100644
--- a/libstdc++-v3/include/ext/pb_ds/detail/resize_policy/hash_prime_size_policy_imp.hpp
+++ b/libstdc++-v3/include/ext/pb_ds/detail/resize_policy/hash_prime_size_policy_imp.hpp
@@ -40,7 +40,9 @@
#ifdef PB_DS_CLASS_C_DEC
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
namespace detail
{
diff --git a/libstdc++-v3/include/ext/pod_char_traits.h b/libstdc++-v3/include/ext/pod_char_traits.h
index 5f60d8a8..83386c8 100644
--- a/libstdc++-v3/include/ext/pod_char_traits.h
+++ b/libstdc++-v3/include/ext/pod_char_traits.h
@@ -32,7 +32,9 @@
#ifndef _POD_CHAR_TRAITS_H
#define _POD_CHAR_TRAITS_H 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <bits/requires_hosted.h> // GNU extensions are currently omitted
diff --git a/libstdc++-v3/include/ext/pointer.h b/libstdc++-v3/include/ext/pointer.h
index 0ead6f5..ab3016e 100644
--- a/libstdc++-v3/include/ext/pointer.h
+++ b/libstdc++-v3/include/ext/pointer.h
@@ -36,7 +36,9 @@
#ifndef _POINTER_H
#define _POINTER_H 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#if _GLIBCXX_HOSTED
# include <iosfwd>
diff --git a/libstdc++-v3/include/ext/random b/libstdc++-v3/include/ext/random
index 0195759..d3f0cc1 100644
--- a/libstdc++-v3/include/ext/random
+++ b/libstdc++-v3/include/ext/random
@@ -29,7 +29,9 @@
#ifndef _EXT_RANDOM
#define _EXT_RANDOM 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <bits/requires_hosted.h> // GNU extensions are currently omitted
diff --git a/libstdc++-v3/include/ext/random.tcc b/libstdc++-v3/include/ext/random.tcc
index c6c3fbe..822b52f 100644
--- a/libstdc++-v3/include/ext/random.tcc
+++ b/libstdc++-v3/include/ext/random.tcc
@@ -30,7 +30,9 @@
#ifndef _EXT_RANDOM_TCC
#define _EXT_RANDOM_TCC 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <bits/requires_hosted.h> // GNU extensions are currently omitted
diff --git a/libstdc++-v3/include/ext/rb_tree b/libstdc++-v3/include/ext/rb_tree
index dc1c9f5..308225d 100644
--- a/libstdc++-v3/include/ext/rb_tree
+++ b/libstdc++-v3/include/ext/rb_tree
@@ -56,7 +56,9 @@
#ifndef _RB_TREE
#define _RB_TREE 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <bits/requires_hosted.h> // GNU extensions are currently omitted
diff --git a/libstdc++-v3/include/ext/rope b/libstdc++-v3/include/ext/rope
index 19199e8..fabc0ee 100644
--- a/libstdc++-v3/include/ext/rope
+++ b/libstdc++-v3/include/ext/rope
@@ -43,7 +43,9 @@
#ifndef _ROPE
#define _ROPE 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <bits/requires_hosted.h> // GNU extensions are currently omitted
diff --git a/libstdc++-v3/include/ext/stdio_filebuf.h b/libstdc++-v3/include/ext/stdio_filebuf.h
index 1f9713b..4a09569 100644
--- a/libstdc++-v3/include/ext/stdio_filebuf.h
+++ b/libstdc++-v3/include/ext/stdio_filebuf.h
@@ -29,7 +29,9 @@
#ifndef _STDIO_FILEBUF_H
#define _STDIO_FILEBUF_H 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <bits/requires_hosted.h> // GNU extensions are currently omitted
diff --git a/libstdc++-v3/include/ext/stdio_sync_filebuf.h b/libstdc++-v3/include/ext/stdio_sync_filebuf.h
index f8993ad..0f5381d 100644
--- a/libstdc++-v3/include/ext/stdio_sync_filebuf.h
+++ b/libstdc++-v3/include/ext/stdio_sync_filebuf.h
@@ -29,7 +29,9 @@
#ifndef _STDIO_SYNC_FILEBUF_H
#define _STDIO_SYNC_FILEBUF_H 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <bits/requires_hosted.h> // GNU extensions are currently omitted
diff --git a/libstdc++-v3/include/ext/string_conversions.h b/libstdc++-v3/include/ext/string_conversions.h
index 2e0755a..acbe11f 100644
--- a/libstdc++-v3/include/ext/string_conversions.h
+++ b/libstdc++-v3/include/ext/string_conversions.h
@@ -29,7 +29,9 @@
#ifndef _STRING_CONVERSIONS_H
#define _STRING_CONVERSIONS_H 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <bits/requires_hosted.h> // GNU extensions are currently omitted
diff --git a/libstdc++-v3/include/ext/type_traits.h b/libstdc++-v3/include/ext/type_traits.h
index 165e1b4..651dfd6 100644
--- a/libstdc++-v3/include/ext/type_traits.h
+++ b/libstdc++-v3/include/ext/type_traits.h
@@ -29,7 +29,9 @@
#ifndef _EXT_TYPE_TRAITS
#define _EXT_TYPE_TRAITS 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <bits/c++config.h>
#include <bits/cpp_type_traits.h>
diff --git a/libstdc++-v3/include/ext/vstring.h b/libstdc++-v3/include/ext/vstring.h
index 25a7d82..22b9a1d 100644
--- a/libstdc++-v3/include/ext/vstring.h
+++ b/libstdc++-v3/include/ext/vstring.h
@@ -29,7 +29,9 @@
#ifndef _VSTRING_H
#define _VSTRING_H 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <bits/requires_hosted.h> // GNU extensions are currently omitted
diff --git a/libstdc++-v3/include/ext/vstring.tcc b/libstdc++-v3/include/ext/vstring.tcc
index 86fcfaa..39837d5 100644
--- a/libstdc++-v3/include/ext/vstring.tcc
+++ b/libstdc++-v3/include/ext/vstring.tcc
@@ -30,7 +30,9 @@
#ifndef _VSTRING_TCC
#define _VSTRING_TCC 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <bits/requires_hosted.h> // GNU extensions are currently omitted
diff --git a/libstdc++-v3/include/ext/vstring_fwd.h b/libstdc++-v3/include/ext/vstring_fwd.h
index f6b6a6f..8c64604 100644
--- a/libstdc++-v3/include/ext/vstring_fwd.h
+++ b/libstdc++-v3/include/ext/vstring_fwd.h
@@ -30,7 +30,9 @@
#ifndef _VSTRING_FWD_H
#define _VSTRING_FWD_H 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <bits/requires_hosted.h> // GNU extensions are currently omitted
diff --git a/libstdc++-v3/include/ext/vstring_util.h b/libstdc++-v3/include/ext/vstring_util.h
index 3648141..8c9c5ac 100644
--- a/libstdc++-v3/include/ext/vstring_util.h
+++ b/libstdc++-v3/include/ext/vstring_util.h
@@ -30,7 +30,9 @@
#ifndef _VSTRING_UTIL_H
#define _VSTRING_UTIL_H 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <bits/requires_hosted.h> // GNU extensions are currently omitted
diff --git a/libstdc++-v3/include/parallel/algorithm b/libstdc++-v3/include/parallel/algorithm
index dc73187..b2606fe 100644
--- a/libstdc++-v3/include/parallel/algorithm
+++ b/libstdc++-v3/include/parallel/algorithm
@@ -29,7 +29,9 @@
#ifndef _PARALLEL_ALGORITHM
#define _PARALLEL_ALGORITHM 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <algorithm>
#include <parallel/algorithmfwd.h>
diff --git a/libstdc++-v3/include/parallel/algorithmfwd.h b/libstdc++-v3/include/parallel/algorithmfwd.h
index d8d5c85..476072b 100644
--- a/libstdc++-v3/include/parallel/algorithmfwd.h
+++ b/libstdc++-v3/include/parallel/algorithmfwd.h
@@ -29,7 +29,9 @@
#ifndef _GLIBCXX_PARALLEL_ALGORITHMFWD_H
#define _GLIBCXX_PARALLEL_ALGORITHMFWD_H 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <parallel/tags.h>
#include <parallel/settings.h>
diff --git a/libstdc++-v3/include/parallel/numericfwd.h b/libstdc++-v3/include/parallel/numericfwd.h
index 05af27a..7f26486 100644
--- a/libstdc++-v3/include/parallel/numericfwd.h
+++ b/libstdc++-v3/include/parallel/numericfwd.h
@@ -29,7 +29,9 @@
#ifndef _GLIBCXX_PARALLEL_NUMERICFWD_H
#define _GLIBCXX_PARALLEL_NUMERICFWD_H 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <parallel/tags.h>
#include <parallel/settings.h>
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>
diff --git a/libstdc++-v3/include/tr1/array b/libstdc++-v3/include/tr1/array
index b16542c..31ea546 100644
--- a/libstdc++-v3/include/tr1/array
+++ b/libstdc++-v3/include/tr1/array
@@ -29,7 +29,9 @@
#ifndef _GLIBCXX_TR1_ARRAY
#define _GLIBCXX_TR1_ARRAY 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <bits/requires_hosted.h> // TR1
diff --git a/libstdc++-v3/include/tr1/cfenv b/libstdc++-v3/include/tr1/cfenv
index 2d161d8..1f57a3a 100644
--- a/libstdc++-v3/include/tr1/cfenv
+++ b/libstdc++-v3/include/tr1/cfenv
@@ -29,7 +29,9 @@
#ifndef _GLIBCXX_TR1_CFENV
#define _GLIBCXX_TR1_CFENV 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <bits/requires_hosted.h> // TR1
diff --git a/libstdc++-v3/include/tr1/cinttypes b/libstdc++-v3/include/tr1/cinttypes
index 3a44937..591f9ec 100644
--- a/libstdc++-v3/include/tr1/cinttypes
+++ b/libstdc++-v3/include/tr1/cinttypes
@@ -29,7 +29,9 @@
#ifndef _GLIBCXX_TR1_CINTTYPES
#define _GLIBCXX_TR1_CINTTYPES 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <bits/requires_hosted.h> // TR1
diff --git a/libstdc++-v3/include/tr1/cmath b/libstdc++-v3/include/tr1/cmath
index 83677a4..bc1e562 100644
--- a/libstdc++-v3/include/tr1/cmath
+++ b/libstdc++-v3/include/tr1/cmath
@@ -29,7 +29,9 @@
#ifndef _GLIBCXX_TR1_CMATH
#define _GLIBCXX_TR1_CMATH 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <bits/requires_hosted.h> // TR1
diff --git a/libstdc++-v3/include/tr1/complex b/libstdc++-v3/include/tr1/complex
index 3135281..65ec5dd 100644
--- a/libstdc++-v3/include/tr1/complex
+++ b/libstdc++-v3/include/tr1/complex
@@ -29,7 +29,9 @@
#ifndef _GLIBCXX_TR1_COMPLEX
#define _GLIBCXX_TR1_COMPLEX 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <bits/requires_hosted.h> // TR1
diff --git a/libstdc++-v3/include/tr1/cstdbool b/libstdc++-v3/include/tr1/cstdbool
index 4fa40b3..b0293ce 100644
--- a/libstdc++-v3/include/tr1/cstdbool
+++ b/libstdc++-v3/include/tr1/cstdbool
@@ -29,7 +29,9 @@
#ifndef _GLIBCXX_TR1_CSTDBOOL
#define _GLIBCXX_TR1_CSTDBOOL 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <bits/requires_hosted.h> // TR1
diff --git a/libstdc++-v3/include/tr1/cstdint b/libstdc++-v3/include/tr1/cstdint
index eef1713..2601105 100644
--- a/libstdc++-v3/include/tr1/cstdint
+++ b/libstdc++-v3/include/tr1/cstdint
@@ -29,7 +29,9 @@
#ifndef _GLIBCXX_TR1_CSTDINT
#define _GLIBCXX_TR1_CSTDINT 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <bits/requires_hosted.h> // TR1
diff --git a/libstdc++-v3/include/tr1/cstdio b/libstdc++-v3/include/tr1/cstdio
index 4e1277a..7537163 100644
--- a/libstdc++-v3/include/tr1/cstdio
+++ b/libstdc++-v3/include/tr1/cstdio
@@ -29,7 +29,9 @@
#ifndef _GLIBCXX_TR1_CSTDIO
#define _GLIBCXX_TR1_CSTDIO 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <bits/requires_hosted.h> // TR1
diff --git a/libstdc++-v3/include/tr1/cstdlib b/libstdc++-v3/include/tr1/cstdlib
index c519f30..c9858de 100644
--- a/libstdc++-v3/include/tr1/cstdlib
+++ b/libstdc++-v3/include/tr1/cstdlib
@@ -29,7 +29,9 @@
#ifndef _GLIBCXX_TR1_CSTDLIB
#define _GLIBCXX_TR1_CSTDLIB 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <bits/requires_hosted.h> // TR1
diff --git a/libstdc++-v3/include/tr1/cwchar b/libstdc++-v3/include/tr1/cwchar
index ce13fc1..3ef3ebb 100644
--- a/libstdc++-v3/include/tr1/cwchar
+++ b/libstdc++-v3/include/tr1/cwchar
@@ -29,7 +29,9 @@
#ifndef _GLIBCXX_TR1_CWCHAR
#define _GLIBCXX_TR1_CWCHAR 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <bits/requires_hosted.h> // TR1
diff --git a/libstdc++-v3/include/tr1/cwctype b/libstdc++-v3/include/tr1/cwctype
index 10403ab..eca6fbf 100644
--- a/libstdc++-v3/include/tr1/cwctype
+++ b/libstdc++-v3/include/tr1/cwctype
@@ -29,7 +29,9 @@
#ifndef _GLIBCXX_TR1_CWCTYPE
#define _GLIBCXX_TR1_CWCTYPE 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <bits/requires_hosted.h> // TR1
diff --git a/libstdc++-v3/include/tr1/functional b/libstdc++-v3/include/tr1/functional
index f2cd42b..9dc67bc 100644
--- a/libstdc++-v3/include/tr1/functional
+++ b/libstdc++-v3/include/tr1/functional
@@ -29,7 +29,9 @@
#ifndef _GLIBCXX_TR1_FUNCTIONAL
#define _GLIBCXX_TR1_FUNCTIONAL 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <bits/requires_hosted.h> // TR1
diff --git a/libstdc++-v3/include/tr1/functional_hash.h b/libstdc++-v3/include/tr1/functional_hash.h
index 57f0eb6..01ebfc9 100644
--- a/libstdc++-v3/include/tr1/functional_hash.h
+++ b/libstdc++-v3/include/tr1/functional_hash.h
@@ -30,7 +30,9 @@
#ifndef _GLIBCXX_TR1_FUNCTIONAL_HASH_H
#define _GLIBCXX_TR1_FUNCTIONAL_HASH_H 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
namespace std _GLIBCXX_VISIBILITY(default)
{
diff --git a/libstdc++-v3/include/tr1/hashtable.h b/libstdc++-v3/include/tr1/hashtable.h
index bcf1785..ebb79ea 100644
--- a/libstdc++-v3/include/tr1/hashtable.h
+++ b/libstdc++-v3/include/tr1/hashtable.h
@@ -31,7 +31,9 @@
#ifndef _GLIBCXX_TR1_HASHTABLE_H
#define _GLIBCXX_TR1_HASHTABLE_H 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <tr1/hashtable_policy.h>
#include <ext/alloc_traits.h>
diff --git a/libstdc++-v3/include/tr1/memory b/libstdc++-v3/include/tr1/memory
index 8862faf..b64a860 100644
--- a/libstdc++-v3/include/tr1/memory
+++ b/libstdc++-v3/include/tr1/memory
@@ -30,7 +30,9 @@
#ifndef _GLIBCXX_TR1_MEMORY
#define _GLIBCXX_TR1_MEMORY 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <bits/requires_hosted.h> // TR1
diff --git a/libstdc++-v3/include/tr1/random b/libstdc++-v3/include/tr1/random
index bca650f..7df863c 100644
--- a/libstdc++-v3/include/tr1/random
+++ b/libstdc++-v3/include/tr1/random
@@ -30,7 +30,9 @@
#ifndef _GLIBCXX_TR1_RANDOM
#define _GLIBCXX_TR1_RANDOM 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <bits/requires_hosted.h> // TR1
diff --git a/libstdc++-v3/include/tr1/random.h b/libstdc++-v3/include/tr1/random.h
index 449b846..74950c9 100644
--- a/libstdc++-v3/include/tr1/random.h
+++ b/libstdc++-v3/include/tr1/random.h
@@ -31,7 +31,9 @@
#ifndef _GLIBCXX_TR1_RANDOM_H
#define _GLIBCXX_TR1_RANDOM_H 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
namespace std _GLIBCXX_VISIBILITY(default)
{
diff --git a/libstdc++-v3/include/tr1/regex b/libstdc++-v3/include/tr1/regex
index 502bfb0..8f36360 100644
--- a/libstdc++-v3/include/tr1/regex
+++ b/libstdc++-v3/include/tr1/regex
@@ -31,7 +31,9 @@
#ifndef _GLIBCXX_TR1_REGEX
#define _GLIBCXX_TR1_REGEX 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <bits/requires_hosted.h> // TR1
diff --git a/libstdc++-v3/include/tr1/tuple b/libstdc++-v3/include/tr1/tuple
index 40e2d09..e53fca7 100644
--- a/libstdc++-v3/include/tr1/tuple
+++ b/libstdc++-v3/include/tr1/tuple
@@ -32,7 +32,9 @@
#ifndef _GLIBCXX_TR1_TUPLE
#define _GLIBCXX_TR1_TUPLE 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/tr1/type_traits b/libstdc++-v3/include/tr1/type_traits
index 62b30e7..c4ce2d7 100644
--- a/libstdc++-v3/include/tr1/type_traits
+++ b/libstdc++-v3/include/tr1/type_traits
@@ -29,7 +29,9 @@
#ifndef _GLIBCXX_TR1_TYPE_TRAITS
#define _GLIBCXX_TR1_TYPE_TRAITS 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/tr1/unordered_map b/libstdc++-v3/include/tr1/unordered_map
index 5025153..0df975d 100644
--- a/libstdc++-v3/include/tr1/unordered_map
+++ b/libstdc++-v3/include/tr1/unordered_map
@@ -29,7 +29,9 @@
#ifndef _GLIBCXX_TR1_UNORDERED_MAP
#define _GLIBCXX_TR1_UNORDERED_MAP 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <bits/requires_hosted.h> // TR1
diff --git a/libstdc++-v3/include/tr1/unordered_set b/libstdc++-v3/include/tr1/unordered_set
index 63c307e..7fa06a8 100644
--- a/libstdc++-v3/include/tr1/unordered_set
+++ b/libstdc++-v3/include/tr1/unordered_set
@@ -29,7 +29,9 @@
#ifndef _GLIBCXX_TR1_UNORDERED_SET
#define _GLIBCXX_TR1_UNORDERED_SET 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <bits/requires_hosted.h> // TR1
diff --git a/libstdc++-v3/include/tr1/utility b/libstdc++-v3/include/tr1/utility
index 8a87eec..13209c0 100644
--- a/libstdc++-v3/include/tr1/utility
+++ b/libstdc++-v3/include/tr1/utility
@@ -29,7 +29,9 @@
#ifndef _GLIBCXX_TR1_UTILITY
#define _GLIBCXX_TR1_UTILITY 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <bits/requires_hosted.h> // TR1
diff --git a/libstdc++-v3/include/tr2/bool_set b/libstdc++-v3/include/tr2/bool_set
index 11d1b24..a1d88ea 100644
--- a/libstdc++-v3/include/tr2/bool_set
+++ b/libstdc++-v3/include/tr2/bool_set
@@ -29,7 +29,9 @@
#ifndef _GLIBCXX_TR2_BOOL_SET
#define _GLIBCXX_TR2_BOOL_SET 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <typeinfo>
#include <iostream>
diff --git a/libstdc++-v3/include/tr2/bool_set.tcc b/libstdc++-v3/include/tr2/bool_set.tcc
index 05f16ef..87fa2eb 100644
--- a/libstdc++-v3/include/tr2/bool_set.tcc
+++ b/libstdc++-v3/include/tr2/bool_set.tcc
@@ -29,7 +29,9 @@
#ifndef _GLIBCXX_TR2_BOOL_SET_TCC
#define _GLIBCXX_TR2_BOOL_SET_TCC 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
namespace std _GLIBCXX_VISIBILITY(default)
{
diff --git a/libstdc++-v3/include/tr2/dynamic_bitset b/libstdc++-v3/include/tr2/dynamic_bitset
index f0878d7..9d55f41 100644
--- a/libstdc++-v3/include/tr2/dynamic_bitset
+++ b/libstdc++-v3/include/tr2/dynamic_bitset
@@ -29,7 +29,9 @@
#ifndef _GLIBCXX_TR2_DYNAMIC_BITSET
#define _GLIBCXX_TR2_DYNAMIC_BITSET 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <limits>
#include <vector>
diff --git a/libstdc++-v3/include/tr2/dynamic_bitset.tcc b/libstdc++-v3/include/tr2/dynamic_bitset.tcc
index 5aac7d8..7400b26 100644
--- a/libstdc++-v3/include/tr2/dynamic_bitset.tcc
+++ b/libstdc++-v3/include/tr2/dynamic_bitset.tcc
@@ -30,7 +30,9 @@
#ifndef _GLIBCXX_TR2_DYNAMIC_BITSET_TCC
#define _GLIBCXX_TR2_DYNAMIC_BITSET_TCC 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
namespace std _GLIBCXX_VISIBILITY(default)
{
diff --git a/libstdc++-v3/include/tr2/type_traits b/libstdc++-v3/include/tr2/type_traits
index 603039d..7a94eb8 100644
--- a/libstdc++-v3/include/tr2/type_traits
+++ b/libstdc++-v3/include/tr2/type_traits
@@ -29,7 +29,9 @@
#ifndef _GLIBCXX_TR2_TYPE_TRAITS
#define _GLIBCXX_TR2_TYPE_TRAITS 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <type_traits>
#include <bits/c++config.h>
diff --git a/libstdc++-v3/libsupc++/atomic_lockfree_defines.h b/libstdc++-v3/libsupc++/atomic_lockfree_defines.h
index 978aedb..cbe488e 100644
--- a/libstdc++-v3/libsupc++/atomic_lockfree_defines.h
+++ b/libstdc++-v3/libsupc++/atomic_lockfree_defines.h
@@ -30,7 +30,9 @@
#ifndef _GLIBCXX_ATOMIC_LOCK_FREE_H
#define _GLIBCXX_ATOMIC_LOCK_FREE_H 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
/**
* @addtogroup atomics
diff --git a/libstdc++-v3/libsupc++/compare b/libstdc++-v3/libsupc++/compare
index ac8ffdb6..bf8a20a 100644
--- a/libstdc++-v3/libsupc++/compare
+++ b/libstdc++-v3/libsupc++/compare
@@ -30,7 +30,9 @@
#ifndef _COMPARE
#define _COMPARE
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#define __glibcxx_want_three_way_comparison
#include <bits/version.h>
diff --git a/libstdc++-v3/libsupc++/cxxabi.h b/libstdc++-v3/libsupc++/cxxabi.h
index d63eae6..f10cb91 100644
--- a/libstdc++-v3/libsupc++/cxxabi.h
+++ b/libstdc++-v3/libsupc++/cxxabi.h
@@ -41,7 +41,9 @@
#ifndef _CXXABI_H
#define _CXXABI_H 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#pragma GCC visibility push(default)
diff --git a/libstdc++-v3/libsupc++/cxxabi_forced.h b/libstdc++-v3/libsupc++/cxxabi_forced.h
index 5759a89..9609001 100644
--- a/libstdc++-v3/libsupc++/cxxabi_forced.h
+++ b/libstdc++-v3/libsupc++/cxxabi_forced.h
@@ -31,7 +31,9 @@
#ifndef _CXXABI_FORCED_H
#define _CXXABI_FORCED_H 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#pragma GCC visibility push(default)
diff --git a/libstdc++-v3/libsupc++/cxxabi_init_exception.h b/libstdc++-v3/libsupc++/cxxabi_init_exception.h
index cbb3ce3..815aa42 100644
--- a/libstdc++-v3/libsupc++/cxxabi_init_exception.h
+++ b/libstdc++-v3/libsupc++/cxxabi_init_exception.h
@@ -31,7 +31,9 @@
#ifndef _CXXABI_INIT_EXCEPTION_H
#define _CXXABI_INIT_EXCEPTION_H 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#pragma GCC visibility push(default)
diff --git a/libstdc++-v3/libsupc++/exception b/libstdc++-v3/libsupc++/exception
index 1b902e9..7ed8ce3 100644
--- a/libstdc++-v3/libsupc++/exception
+++ b/libstdc++-v3/libsupc++/exception
@@ -30,7 +30,9 @@
#ifndef __EXCEPTION__
#define __EXCEPTION__
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <bits/c++config.h>
#include <bits/exception.h>
diff --git a/libstdc++-v3/libsupc++/exception.h b/libstdc++-v3/libsupc++/exception.h
index dca5882..41fae80 100644
--- a/libstdc++-v3/libsupc++/exception.h
+++ b/libstdc++-v3/libsupc++/exception.h
@@ -31,7 +31,9 @@
#ifndef __EXCEPTION_H
#define __EXCEPTION_H 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <bits/c++config.h>
diff --git a/libstdc++-v3/libsupc++/hash_bytes.h b/libstdc++-v3/libsupc++/hash_bytes.h
index f3f965c..f79fca2 100644
--- a/libstdc++-v3/libsupc++/hash_bytes.h
+++ b/libstdc++-v3/libsupc++/hash_bytes.h
@@ -30,7 +30,9 @@
#ifndef _HASH_BYTES_H
#define _HASH_BYTES_H 1
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <bits/c++config.h>
diff --git a/libstdc++-v3/libsupc++/initializer_list b/libstdc++-v3/libsupc++/initializer_list
index 91b609c..144286b 100644
--- a/libstdc++-v3/libsupc++/initializer_list
+++ b/libstdc++-v3/libsupc++/initializer_list
@@ -30,7 +30,9 @@
#ifndef _INITIALIZER_LIST
#define _INITIALIZER_LIST
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#if __cplusplus < 201103L
# include <bits/c++0x_warning.h>
diff --git a/libstdc++-v3/libsupc++/new b/libstdc++-v3/libsupc++/new
index e8b0050..e9a3d9b 100644
--- a/libstdc++-v3/libsupc++/new
+++ b/libstdc++-v3/libsupc++/new
@@ -35,7 +35,9 @@
#ifndef _NEW
#define _NEW
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <bits/c++config.h>
#include <bits/exception.h>
diff --git a/libstdc++-v3/libsupc++/typeinfo b/libstdc++-v3/libsupc++/typeinfo
index 35e72bb..71066eb 100644
--- a/libstdc++-v3/libsupc++/typeinfo
+++ b/libstdc++-v3/libsupc++/typeinfo
@@ -29,7 +29,9 @@
#ifndef _TYPEINFO
#define _TYPEINFO
+#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
+#endif
#include <bits/exception.h>
#if __cplusplus >= 201103L
diff --git a/libstdc++-v3/testsuite/20_util/ratio/operations/ops_overflow_neg.cc b/libstdc++-v3/testsuite/20_util/ratio/operations/ops_overflow_neg.cc
index 33c1f59..f54cd31 100644
--- a/libstdc++-v3/testsuite/20_util/ratio/operations/ops_overflow_neg.cc
+++ b/libstdc++-v3/testsuite/20_util/ratio/operations/ops_overflow_neg.cc
@@ -43,10 +43,11 @@ test02()
// { dg-error "expected initializer" "" { target *-*-* } 35 }
// { dg-error "expected initializer" "" { target *-*-* } 37 }
// { dg-error "overflow in addition" "" { target *-*-* } 0 }
-// { dg-error "overflow in multiplication" "" { target *-*-* } 101 }
// { dg-error "overflow in multiplication" "" { target *-*-* } 103 }
// { dg-error "overflow in multiplication" "" { target *-*-* } 105 }
+// { dg-error "overflow in multiplication" "" { target *-*-* } 107 }
// { dg-error "overflow in constant expression" "" { target *-*-* } 0 }
// { dg-error "narrowing conversion" "" { target *-*-* } 0 }
+// { dg-error "overflow in expression" "" { target *-*-* } 114 }
// { dg-prune-output "out of range" }
// { dg-prune-output "not usable in a constant expression" }
diff --git a/libstdc++-v3/testsuite/23_containers/array/tuple_interface/get_neg.cc b/libstdc++-v3/testsuite/23_containers/array/tuple_interface/get_neg.cc
index f74513d..d901bd9 100644
--- a/libstdc++-v3/testsuite/23_containers/array/tuple_interface/get_neg.cc
+++ b/libstdc++-v3/testsuite/23_containers/array/tuple_interface/get_neg.cc
@@ -26,6 +26,6 @@ int n1 = std::get<1>(a);
int n2 = std::get<1>(std::move(a));
int n3 = std::get<1>(ca);
-// { dg-error "static assertion failed" "" { target *-*-* } 392 }
-// { dg-error "static assertion failed" "" { target *-*-* } 401 }
-// { dg-error "static assertion failed" "" { target *-*-* } 410 }
+// { dg-error "static assertion failed" "" { target *-*-* } 394 }
+// { dg-error "static assertion failed" "" { target *-*-* } 403 }
+// { dg-error "static assertion failed" "" { target *-*-* } 412 }
diff --git a/libstdc++-v3/testsuite/23_containers/vector/cons/destructible_debug_neg.cc b/libstdc++-v3/testsuite/23_containers/vector/cons/destructible_debug_neg.cc
index f06668c..adcffb6 100644
--- a/libstdc++-v3/testsuite/23_containers/vector/cons/destructible_debug_neg.cc
+++ b/libstdc++-v3/testsuite/23_containers/vector/cons/destructible_debug_neg.cc
@@ -46,7 +46,7 @@ test02()
// { dg-error "value type is destructible" "" { target *-*-* } 0 }
// In Debug Mode the "required from here" errors come from <debug/vector>
-// { dg-error "required from here" "" { target *-*-* } 180 }
+// { dg-error "required from here" "" { target *-*-* } 182 }
// Needed because of PR c++/92193
// { dg-prune-output "deleted function" }
diff --git a/libstdc++-v3/testsuite/24_iterators/operations/prev_neg.cc b/libstdc++-v3/testsuite/24_iterators/operations/prev_neg.cc
index 17242bd..bf0c5e8 100644
--- a/libstdc++-v3/testsuite/24_iterators/operations/prev_neg.cc
+++ b/libstdc++-v3/testsuite/24_iterators/operations/prev_neg.cc
@@ -38,5 +38,5 @@ test02()
{
const Y array[1] = { };
(void) std::prev(array + 1);
- // { dg-error "forward_iterator" "" { target *-*-* } 239 }
+ // { dg-error "forward_iterator" "" { target *-*-* } 241 }
}
diff --git a/libstdc++-v3/testsuite/ext/type_traits/add_unsigned_floating_neg.cc b/libstdc++-v3/testsuite/ext/type_traits/add_unsigned_floating_neg.cc
index 458748a..36562c6 100644
--- a/libstdc++-v3/testsuite/ext/type_traits/add_unsigned_floating_neg.cc
+++ b/libstdc++-v3/testsuite/ext/type_traits/add_unsigned_floating_neg.cc
@@ -35,4 +35,4 @@ int main()
}
// { dg-error "required from" "" { target *-*-* } 28 }
-// { dg-error "no type" "" { target *-*-* } 74 }
+// { dg-error "no type" "" { target *-*-* } 76 }
diff --git a/libstdc++-v3/testsuite/ext/type_traits/add_unsigned_integer_neg.cc b/libstdc++-v3/testsuite/ext/type_traits/add_unsigned_integer_neg.cc
index c1dde44..e297332 100644
--- a/libstdc++-v3/testsuite/ext/type_traits/add_unsigned_integer_neg.cc
+++ b/libstdc++-v3/testsuite/ext/type_traits/add_unsigned_integer_neg.cc
@@ -36,5 +36,5 @@ int main()
}
// { dg-error "invalid use of incomplete" "" { target *-*-* } 28 }
-// { dg-error "declaration of" "" { target *-*-* } 103 }
-// { dg-error "declaration of" "" { target *-*-* } 106 }
+// { dg-error "declaration of" "" { target *-*-* } 105 }
+// { dg-error "declaration of" "" { target *-*-* } 108 }
diff --git a/libstdc++-v3/testsuite/ext/type_traits/remove_unsigned_floating_neg.cc b/libstdc++-v3/testsuite/ext/type_traits/remove_unsigned_floating_neg.cc
index 5f77c1a..2c6c53b 100644
--- a/libstdc++-v3/testsuite/ext/type_traits/remove_unsigned_floating_neg.cc
+++ b/libstdc++-v3/testsuite/ext/type_traits/remove_unsigned_floating_neg.cc
@@ -35,4 +35,4 @@ int main()
}
// { dg-error "required from" "" { target *-*-* } 28 }
-// { dg-error "no type" "" { target *-*-* } 117 }
+// { dg-error "no type" "" { target *-*-* } 119 }
diff --git a/libstdc++-v3/testsuite/ext/type_traits/remove_unsigned_integer_neg.cc b/libstdc++-v3/testsuite/ext/type_traits/remove_unsigned_integer_neg.cc
index 7f5a304..af6ea1c 100644
--- a/libstdc++-v3/testsuite/ext/type_traits/remove_unsigned_integer_neg.cc
+++ b/libstdc++-v3/testsuite/ext/type_traits/remove_unsigned_integer_neg.cc
@@ -36,5 +36,5 @@ int main()
}
// { dg-error "invalid use of incomplete" "" { target *-*-* } 28 }
-// { dg-error "declaration of" "" { target *-*-* } 146 }
-// { dg-error "declaration of" "" { target *-*-* } 149 }
+// { dg-error "declaration of" "" { target *-*-* } 148 }
+// { dg-error "declaration of" "" { target *-*-* } 151 }