aboutsummaryrefslogtreecommitdiff
path: root/libstdc++-v3/include
diff options
context:
space:
mode:
authorJason Merrill <jason@redhat.com>2023-12-22 13:20:35 -0500
committerJason Merrill <jason@redhat.com>2024-09-19 10:23:16 -0400
commitd3a7302ec5985abcda561886cc724d388c7143cb (patch)
tree587ad5067908ca764873a75bf56c4c5fb0e1246b /libstdc++-v3/include
parent605d05b9481832bc691685b7ff990ef68f02b1bb (diff)
downloadgcc-d3a7302ec5985abcda561886cc724d388c7143cb.zip
gcc-d3a7302ec5985abcda561886cc724d388c7143cb.tar.gz
gcc-d3a7302ec5985abcda561886cc724d388c7143cb.tar.bz2
libstdc++: add #pragma diagnostic
The use of #pragma GCC system_header in libstdc++ has led to bugs going undetected for a while due to the silencing of compiler warnings that would have revealed them promptly, and also interferes with warnings about problematic template instantiations induced by user code. But removing it, or even compiling with -Wsystem-header, is also problematic due to warnings about deliberate uses of extensions. So this patch adds #pragma GCC diagnostic as needed to suppress these warnings. The change to acinclude.m4 changes -Wabi to warn only in comparison to ABI 19, to avoid lots of warnings that we now mangle concept requirements, which are in any case still experimental. I checked for any other changes against ABI v15, and found only the <format> lambda mangling, which we can ignore. This also enables -Wsystem-headers while building the library, so we see any warnings not silenced by these #pragmas. libstdc++-v3/ChangeLog: * include/bits/algorithmfwd.h: * include/bits/allocator.h: * include/bits/codecvt.h: * include/bits/concept_check.h: * include/bits/cpp_type_traits.h: * include/bits/hashtable.h: * include/bits/iterator_concepts.h: * include/bits/ostream_insert.h: * include/bits/ranges_base.h: * include/bits/regex_automaton.h: * include/bits/std_abs.h: * include/bits/stl_algo.h: * include/c_compatibility/fenv.h: * include/c_compatibility/inttypes.h: * include/c_compatibility/stdint.h: * include/ext/concurrence.h: * include/ext/type_traits.h: * 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: * 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/ostream.tcc: * include/bits/regex_compiler.tcc: * include/bits/sstream.tcc: * include/bits/streambuf.tcc: * configure: Regenerate. * include/bits/c++config: * include/c/cassert: * include/c/cctype: * include/c/cerrno: * include/c/cfloat: * 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/cwchar: * include/c/cwctype: * include/c_global/climits: * include/c_global/cmath: * include/c_global/cstddef: * include/c_global/cstdlib: * include/decimal/decimal: * include/ext/rope: * include/std/any: * include/std/charconv: * include/std/complex: * include/std/coroutine: * include/std/format: * include/std/iomanip: * include/std/limits: * include/std/numbers: * include/tr1/functional: * include/tr1/tuple: * include/tr1/type_traits: * libsupc++/compare: * libsupc++/new: Add #pragma GCC diagnostic to suppress undesired warnings. * acinclude.m4: Change -Wabi version from 2 to 19. gcc/ChangeLog: * ginclude/stdint-wrap.h: Add #pragma GCC diagnostic to suppress undesired warnings. * gsyslimits.h: Likewise.
Diffstat (limited to 'libstdc++-v3/include')
-rw-r--r--libstdc++-v3/include/bits/algorithmfwd.h5
-rw-r--r--libstdc++-v3/include/bits/allocator.h4
-rw-r--r--libstdc++-v3/include/bits/basic_ios.tcc4
-rw-r--r--libstdc++-v3/include/bits/basic_string.tcc4
-rw-r--r--libstdc++-v3/include/bits/c++config7
-rw-r--r--libstdc++-v3/include/bits/codecvt.h4
-rw-r--r--libstdc++-v3/include/bits/concept_check.h4
-rw-r--r--libstdc++-v3/include/bits/cpp_type_traits.h5
-rw-r--r--libstdc++-v3/include/bits/fstream.tcc4
-rw-r--r--libstdc++-v3/include/bits/hashtable.h5
-rw-r--r--libstdc++-v3/include/bits/istream.tcc4
-rw-r--r--libstdc++-v3/include/bits/iterator_concepts.h4
-rw-r--r--libstdc++-v3/include/bits/locale_classes.tcc5
-rw-r--r--libstdc++-v3/include/bits/locale_facets.tcc4
-rw-r--r--libstdc++-v3/include/bits/ostream.tcc4
-rw-r--r--libstdc++-v3/include/bits/ostream_insert.h4
-rw-r--r--libstdc++-v3/include/bits/ranges_base.h4
-rw-r--r--libstdc++-v3/include/bits/regex_automaton.h5
-rw-r--r--libstdc++-v3/include/bits/regex_compiler.tcc7
-rw-r--r--libstdc++-v3/include/bits/sstream.tcc4
-rw-r--r--libstdc++-v3/include/bits/std_abs.h6
-rw-r--r--libstdc++-v3/include/bits/stl_algo.h5
-rw-r--r--libstdc++-v3/include/bits/streambuf.tcc4
-rw-r--r--libstdc++-v3/include/c/cassert5
-rw-r--r--libstdc++-v3/include/c/cctype5
-rw-r--r--libstdc++-v3/include/c/cerrno5
-rw-r--r--libstdc++-v3/include/c/cfloat5
-rw-r--r--libstdc++-v3/include/c/climits5
-rw-r--r--libstdc++-v3/include/c/clocale5
-rw-r--r--libstdc++-v3/include/c/cmath5
-rw-r--r--libstdc++-v3/include/c/csetjmp5
-rw-r--r--libstdc++-v3/include/c/csignal5
-rw-r--r--libstdc++-v3/include/c/cstdarg5
-rw-r--r--libstdc++-v3/include/c/cstddef5
-rw-r--r--libstdc++-v3/include/c/cstdio5
-rw-r--r--libstdc++-v3/include/c/cstdlib5
-rw-r--r--libstdc++-v3/include/c/cstring5
-rw-r--r--libstdc++-v3/include/c/ctime5
-rw-r--r--libstdc++-v3/include/c/cwchar5
-rw-r--r--libstdc++-v3/include/c/cwctype5
-rw-r--r--libstdc++-v3/include/c_compatibility/fenv.h5
-rw-r--r--libstdc++-v3/include/c_compatibility/inttypes.h5
-rw-r--r--libstdc++-v3/include/c_compatibility/stdint.h5
-rw-r--r--libstdc++-v3/include/c_global/climits5
-rw-r--r--libstdc++-v3/include/c_global/cmath5
-rw-r--r--libstdc++-v3/include/c_global/cstddef5
-rw-r--r--libstdc++-v3/include/c_global/cstdlib4
-rw-r--r--libstdc++-v3/include/decimal/decimal4
-rw-r--r--libstdc++-v3/include/ext/concurrence.h5
-rw-r--r--libstdc++-v3/include/ext/rope6
-rw-r--r--libstdc++-v3/include/ext/type_traits.h5
-rw-r--r--libstdc++-v3/include/std/any5
-rw-r--r--libstdc++-v3/include/std/charconv4
-rw-r--r--libstdc++-v3/include/std/complex4
-rw-r--r--libstdc++-v3/include/std/coroutine4
-rw-r--r--libstdc++-v3/include/std/format9
-rw-r--r--libstdc++-v3/include/std/iomanip4
-rw-r--r--libstdc++-v3/include/std/limits6
-rw-r--r--libstdc++-v3/include/std/numbers5
-rw-r--r--libstdc++-v3/include/tr1/functional5
-rw-r--r--libstdc++-v3/include/tr1/tuple4
-rw-r--r--libstdc++-v3/include/tr1/type_traits4
62 files changed, 298 insertions, 1 deletions
diff --git a/libstdc++-v3/include/bits/algorithmfwd.h b/libstdc++-v3/include/bits/algorithmfwd.h
index 34bf992..7f1f159 100644
--- a/libstdc++-v3/include/bits/algorithmfwd.h
+++ b/libstdc++-v3/include/bits/algorithmfwd.h
@@ -39,6 +39,9 @@
#include <initializer_list>
#endif
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wc++11-extensions"
+
namespace std _GLIBCXX_VISIBILITY(default)
{
_GLIBCXX_BEGIN_NAMESPACE_VERSION
@@ -962,6 +965,8 @@ _GLIBCXX_END_NAMESPACE_ALGO
_GLIBCXX_END_NAMESPACE_VERSION
} // namespace std
+#pragma GCC diagnostic pop
+
#ifdef _GLIBCXX_PARALLEL
# include <parallel/algorithmfwd.h>
#endif
diff --git a/libstdc++-v3/include/bits/allocator.h b/libstdc++-v3/include/bits/allocator.h
index 9e75b37..ebb487a 100644
--- a/libstdc++-v3/include/bits/allocator.h
+++ b/libstdc++-v3/include/bits/allocator.h
@@ -49,6 +49,9 @@
#include <type_traits>
#endif
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wc++11-extensions"
+
namespace std _GLIBCXX_VISIBILITY(default)
{
_GLIBCXX_BEGIN_NAMESPACE_VERSION
@@ -292,4 +295,5 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
_GLIBCXX_END_NAMESPACE_VERSION
} // namespace std
+#pragma GCC diagnostic pop
#endif
diff --git a/libstdc++-v3/include/bits/basic_ios.tcc b/libstdc++-v3/include/bits/basic_ios.tcc
index 0197bdf..1519603 100644
--- a/libstdc++-v3/include/bits/basic_ios.tcc
+++ b/libstdc++-v3/include/bits/basic_ios.tcc
@@ -32,6 +32,9 @@
#pragma GCC system_header
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wc++11-extensions" // extern template
+
namespace std _GLIBCXX_VISIBILITY(default)
{
_GLIBCXX_BEGIN_NAMESPACE_VERSION
@@ -181,4 +184,5 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
_GLIBCXX_END_NAMESPACE_VERSION
} // namespace std
+#pragma GCC diagnostic pop
#endif
diff --git a/libstdc++-v3/include/bits/basic_string.tcc b/libstdc++-v3/include/bits/basic_string.tcc
index e458c18..8a76485 100644
--- a/libstdc++-v3/include/bits/basic_string.tcc
+++ b/libstdc++-v3/include/bits/basic_string.tcc
@@ -41,6 +41,9 @@
#pragma GCC system_header
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wc++11-extensions"
+
#include <bits/cxxabi_forced.h>
namespace std _GLIBCXX_VISIBILITY(default)
@@ -1031,4 +1034,5 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
_GLIBCXX_END_NAMESPACE_VERSION
} // namespace std
+#pragma GCC diagnostic pop
#endif
diff --git a/libstdc++-v3/include/bits/c++config b/libstdc++-v3/include/bits/c++config
index 54d455b..66d03cf 100644
--- a/libstdc++-v3/include/bits/c++config
+++ b/libstdc++-v3/include/bits/c++config
@@ -32,6 +32,11 @@
#pragma GCC system_header
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wvariadic-macros"
+#pragma GCC diagnostic ignored "-Wc++11-extensions"
+#pragma GCC diagnostic ignored "-Wc++23-extensions" // bf16
+
// The major release number for the GCC release the C++ library belongs to.
#define _GLIBCXX_RELEASE
@@ -910,4 +915,6 @@ namespace __gnu_cxx
#endif // __has_include
#endif // C++17
+#pragma GCC diagnostic pop
+
// End of prewritten config; the settings discovered at configure time follow.
diff --git a/libstdc++-v3/include/bits/codecvt.h b/libstdc++-v3/include/bits/codecvt.h
index 41a1d30..c51cc7d 100644
--- a/libstdc++-v3/include/bits/codecvt.h
+++ b/libstdc++-v3/include/bits/codecvt.h
@@ -41,6 +41,9 @@
#include <bits/c++config.h>
#include <bits/locale_classes.h> // locale::facet
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wc++11-extensions" // extern template
+
namespace std _GLIBCXX_VISIBILITY(default)
{
_GLIBCXX_BEGIN_NAMESPACE_VERSION
@@ -840,4 +843,5 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
_GLIBCXX_END_NAMESPACE_VERSION
} // namespace std
+#pragma GCC diagnostic pop
#endif // _CODECVT_H
diff --git a/libstdc++-v3/include/bits/concept_check.h b/libstdc++-v3/include/bits/concept_check.h
index 65f662b..6479f2f 100644
--- a/libstdc++-v3/include/bits/concept_check.h
+++ b/libstdc++-v3/include/bits/concept_check.h
@@ -34,6 +34,9 @@
#include <bits/c++config.h>
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wvariadic-macros"
+
// All places in libstdc++-v3 where these are used, or /might/ be used, or
// don't need to be used, or perhaps /should/ be used, are commented with
// "concept requirements" (and maybe some more text). So grep like crazy
@@ -78,4 +81,5 @@
#endif // enable/disable
+#pragma GCC diagnostic pop
#endif // _GLIBCXX_CONCEPT_CHECK
diff --git a/libstdc++-v3/include/bits/cpp_type_traits.h b/libstdc++-v3/include/bits/cpp_type_traits.h
index ff74c55..e3a80e0 100644
--- a/libstdc++-v3/include/bits/cpp_type_traits.h
+++ b/libstdc++-v3/include/bits/cpp_type_traits.h
@@ -40,6 +40,9 @@
# include <type_traits> // is_same_v, is_integral_v
#endif
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wlong-long"
+
//
// This file provides some compile-time information about various types.
// These representations were designed, on purpose, to be constant-expressions
@@ -582,4 +585,6 @@ _GLIBCXX_END_NAMESPACE_VERSION
} // namespace
} // extern "C++"
+#pragma GCC diagnostic pop
+
#endif //_CPP_TYPE_TRAITS_H
diff --git a/libstdc++-v3/include/bits/fstream.tcc b/libstdc++-v3/include/bits/fstream.tcc
index a5accec..7b246ad 100644
--- a/libstdc++-v3/include/bits/fstream.tcc
+++ b/libstdc++-v3/include/bits/fstream.tcc
@@ -36,6 +36,9 @@
#pragma GCC system_header
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wc++11-extensions" // extern template
+
#include <bits/cxxabi_forced.h>
#include <bits/move.h> // for swap
#include <cerrno>
@@ -1094,4 +1097,5 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
_GLIBCXX_END_NAMESPACE_VERSION
} // namespace std
+#pragma GCC diagnostic pop
#endif
diff --git a/libstdc++-v3/include/bits/hashtable.h b/libstdc++-v3/include/bits/hashtable.h
index 361da2b..b02bddf 100644
--- a/libstdc++-v3/include/bits/hashtable.h
+++ b/libstdc++-v3/include/bits/hashtable.h
@@ -40,6 +40,9 @@
# include <bits/node_handle.h>
#endif
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wc++11-extensions"
+
namespace std _GLIBCXX_VISIBILITY(default)
{
_GLIBCXX_BEGIN_NAMESPACE_VERSION
@@ -2758,4 +2761,6 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
_GLIBCXX_END_NAMESPACE_VERSION
} // namespace std
+#pragma GCC diagnostic pop
+
#endif // _HASHTABLE_H
diff --git a/libstdc++-v3/include/bits/istream.tcc b/libstdc++-v3/include/bits/istream.tcc
index 16423bf..23a7c84 100644
--- a/libstdc++-v3/include/bits/istream.tcc
+++ b/libstdc++-v3/include/bits/istream.tcc
@@ -36,6 +36,9 @@
#pragma GCC system_header
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wc++11-extensions" // extern template
+
#include <bits/cxxabi_forced.h>
namespace std _GLIBCXX_VISIBILITY(default)
@@ -1166,4 +1169,5 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
_GLIBCXX_END_NAMESPACE_VERSION
} // namespace std
+#pragma GCC diagnostic pop
#endif
diff --git a/libstdc++-v3/include/bits/iterator_concepts.h b/libstdc++-v3/include/bits/iterator_concepts.h
index 642c709..4ac6e6b 100644
--- a/libstdc++-v3/include/bits/iterator_concepts.h
+++ b/libstdc++-v3/include/bits/iterator_concepts.h
@@ -37,6 +37,9 @@
#include <bits/ptr_traits.h> // to_address
#include <bits/ranges_cmp.h> // identity, ranges::less
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wpedantic" // __int128
+
namespace std _GLIBCXX_VISIBILITY(default)
{
_GLIBCXX_BEGIN_NAMESPACE_VERSION
@@ -1044,5 +1047,6 @@ namespace ranges
#endif // C++20 library concepts
_GLIBCXX_END_NAMESPACE_VERSION
} // namespace std
+#pragma GCC diagnostic pop
#endif // C++20
#endif // _ITERATOR_CONCEPTS_H
diff --git a/libstdc++-v3/include/bits/locale_classes.tcc b/libstdc++-v3/include/bits/locale_classes.tcc
index 1b5f5f2..4f3af24 100644
--- a/libstdc++-v3/include/bits/locale_classes.tcc
+++ b/libstdc++-v3/include/bits/locale_classes.tcc
@@ -36,6 +36,10 @@
#pragma GCC system_header
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wc++11-extensions" // extern template
+#pragma GCC diagnostic ignored "-Wvariadic-macros"
+
namespace std _GLIBCXX_VISIBILITY(default)
{
_GLIBCXX_BEGIN_NAMESPACE_VERSION
@@ -384,4 +388,5 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
_GLIBCXX_END_NAMESPACE_VERSION
} // namespace std
+#pragma GCC diagnostic pop
#endif
diff --git a/libstdc++-v3/include/bits/locale_facets.tcc b/libstdc++-v3/include/bits/locale_facets.tcc
index cde81bf..4e9bf6f 100644
--- a/libstdc++-v3/include/bits/locale_facets.tcc
+++ b/libstdc++-v3/include/bits/locale_facets.tcc
@@ -32,6 +32,9 @@
#pragma GCC system_header
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wc++11-extensions" // extern template
+
namespace std _GLIBCXX_VISIBILITY(default)
{
_GLIBCXX_BEGIN_NAMESPACE_VERSION
@@ -1433,4 +1436,5 @@ _GLIBCXX_END_NAMESPACE_LDBL
_GLIBCXX_END_NAMESPACE_VERSION
} // namespace
+#pragma GCC diagnostic pop
#endif
diff --git a/libstdc++-v3/include/bits/ostream.tcc b/libstdc++-v3/include/bits/ostream.tcc
index 972de79..7aeb23a 100644
--- a/libstdc++-v3/include/bits/ostream.tcc
+++ b/libstdc++-v3/include/bits/ostream.tcc
@@ -36,6 +36,9 @@
#pragma GCC system_header
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wc++11-extensions" // extern template
+
#include <bits/cxxabi_forced.h>
namespace std _GLIBCXX_VISIBILITY(default)
@@ -390,4 +393,5 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
_GLIBCXX_END_NAMESPACE_VERSION
} // namespace std
+#pragma GCC diagnostic pop
#endif
diff --git a/libstdc++-v3/include/bits/ostream_insert.h b/libstdc++-v3/include/bits/ostream_insert.h
index e685761..d61b4b1 100644
--- a/libstdc++-v3/include/bits/ostream_insert.h
+++ b/libstdc++-v3/include/bits/ostream_insert.h
@@ -36,6 +36,9 @@
#include <bits/cxxabi_forced.h>
#include <bits/exception_defines.h>
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wc++11-extensions" // extern template
+
namespace std _GLIBCXX_VISIBILITY(default)
{
_GLIBCXX_BEGIN_NAMESPACE_VERSION
@@ -131,4 +134,5 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
_GLIBCXX_END_NAMESPACE_VERSION
} // namespace std
+#pragma GCC diagnostic pop
#endif /* _OSTREAM_INSERT_H */
diff --git a/libstdc++-v3/include/bits/ranges_base.h b/libstdc++-v3/include/bits/ranges_base.h
index 63eb552..0c6a4e8 100644
--- a/libstdc++-v3/include/bits/ranges_base.h
+++ b/libstdc++-v3/include/bits/ranges_base.h
@@ -39,6 +39,9 @@
#include <bits/max_size_type.h>
#include <bits/version.h>
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wpedantic" // __int128
+
#ifdef __cpp_lib_concepts
namespace std _GLIBCXX_VISIBILITY(default)
{
@@ -1073,5 +1076,6 @@ namespace ranges
_GLIBCXX_END_NAMESPACE_VERSION
} // namespace std
#endif // library concepts
+#pragma GCC diagnostic pop
#endif // C++20
#endif // _GLIBCXX_RANGES_BASE_H
diff --git a/libstdc++-v3/include/bits/regex_automaton.h b/libstdc++-v3/include/bits/regex_automaton.h
index 574ec90..03179a0 100644
--- a/libstdc++-v3/include/bits/regex_automaton.h
+++ b/libstdc++-v3/include/bits/regex_automaton.h
@@ -33,6 +33,9 @@
#define _GLIBCXX_REGEX_STATE_LIMIT 100000
#endif
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wpedantic" // anon struct
+
namespace std _GLIBCXX_VISIBILITY(default)
{
_GLIBCXX_BEGIN_NAMESPACE_VERSION
@@ -397,4 +400,6 @@ namespace __detail
_GLIBCXX_END_NAMESPACE_VERSION
} // namespace std
+#pragma GCC diagnostic pop
+
#include <bits/regex_automaton.tcc>
diff --git a/libstdc++-v3/include/bits/regex_compiler.tcc b/libstdc++-v3/include/bits/regex_compiler.tcc
index 3c6cb66..9c5a46a 100644
--- a/libstdc++-v3/include/bits/regex_compiler.tcc
+++ b/libstdc++-v3/include/bits/regex_compiler.tcc
@@ -55,6 +55,9 @@
// All dummy nodes will be eliminated at the end of compilation.
*/
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wc++20-extensions" // variadic macro with 0 args
+
namespace std _GLIBCXX_VISIBILITY(default)
{
_GLIBCXX_BEGIN_NAMESPACE_VERSION
@@ -621,4 +624,6 @@ namespace __detail
} // namespace __detail
_GLIBCXX_END_NAMESPACE_VERSION
-} // namespace
+} // namespace std
+
+#pragma GCC diagnostic pop
diff --git a/libstdc++-v3/include/bits/sstream.tcc b/libstdc++-v3/include/bits/sstream.tcc
index 9acf15f..7eb5561 100644
--- a/libstdc++-v3/include/bits/sstream.tcc
+++ b/libstdc++-v3/include/bits/sstream.tcc
@@ -36,6 +36,9 @@
#pragma GCC system_header
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wc++11-extensions" // extern template
+
namespace std _GLIBCXX_VISIBILITY(default)
{
_GLIBCXX_BEGIN_NAMESPACE_VERSION
@@ -304,4 +307,5 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
_GLIBCXX_END_NAMESPACE_VERSION
} // namespace std
+#pragma GCC diagnostic pop
#endif
diff --git a/libstdc++-v3/include/bits/std_abs.h b/libstdc++-v3/include/bits/std_abs.h
index 48d4416..d143ec1 100644
--- a/libstdc++-v3/include/bits/std_abs.h
+++ b/libstdc++-v3/include/bits/std_abs.h
@@ -34,6 +34,10 @@
#include <bits/c++config.h>
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wpedantic" // include_next
+#pragma GCC diagnostic ignored "-Wlong-long"
+
#define _GLIBCXX_INCLUDE_NEXT_C_HEADERS
#include_next <stdlib.h>
#ifdef __CORRECT_ISO_CPP_MATH_H_PROTO
@@ -151,4 +155,6 @@ _GLIBCXX_END_NAMESPACE_VERSION
} // namespace
} // extern "C++"
+#pragma GCC diagnostic pop
+
#endif // _GLIBCXX_BITS_STD_ABS_H
diff --git a/libstdc++-v3/include/bits/stl_algo.h b/libstdc++-v3/include/bits/stl_algo.h
index 778a37a..a1ef665 100644
--- a/libstdc++-v3/include/bits/stl_algo.h
+++ b/libstdc++-v3/include/bits/stl_algo.h
@@ -72,6 +72,9 @@
# endif
#endif
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wc++11-extensions" // inline namespace
+
// See concept_check.h for the __glibcxx_*_requires macros.
namespace std _GLIBCXX_VISIBILITY(default)
@@ -5901,4 +5904,6 @@ _GLIBCXX_END_NAMESPACE_ALGO
_GLIBCXX_END_NAMESPACE_VERSION
} // namespace std
+#pragma GCC diagnostic pop
+
#endif /* _STL_ALGO_H */
diff --git a/libstdc++-v3/include/bits/streambuf.tcc b/libstdc++-v3/include/bits/streambuf.tcc
index 3cfee68..0c28033 100644
--- a/libstdc++-v3/include/bits/streambuf.tcc
+++ b/libstdc++-v3/include/bits/streambuf.tcc
@@ -36,6 +36,9 @@
#pragma GCC system_header
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wc++11-extensions" // extern template
+
namespace std _GLIBCXX_VISIBILITY(default)
{
_GLIBCXX_BEGIN_NAMESPACE_VERSION
@@ -166,4 +169,5 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
_GLIBCXX_END_NAMESPACE_VERSION
} // namespace std
+#pragma GCC diagnostic pop
#endif
diff --git a/libstdc++-v3/include/c/cassert b/libstdc++-v3/include/c/cassert
index 5cd11ff..ef6e844 100644
--- a/libstdc++-v3/include/c/cassert
+++ b/libstdc++-v3/include/c/cassert
@@ -30,5 +30,10 @@
#pragma GCC system_header
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wpedantic" // include_next
+
#include <bits/c++config.h>
#include_next <assert.h>
+
+#pragma GCC diagnostic pop
diff --git a/libstdc++-v3/include/c/cctype b/libstdc++-v3/include/c/cctype
index c6f6503..a7a5955 100644
--- a/libstdc++-v3/include/c/cctype
+++ b/libstdc++-v3/include/c/cctype
@@ -31,6 +31,11 @@
#pragma GCC system_header
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wpedantic" // include_next
+
#include_next <ctype.h>
+#pragma GCC diagnostic pop
+
#endif
diff --git a/libstdc++-v3/include/c/cerrno b/libstdc++-v3/include/c/cerrno
index 9e47b18..29bf0b4 100644
--- a/libstdc++-v3/include/c/cerrno
+++ b/libstdc++-v3/include/c/cerrno
@@ -40,9 +40,14 @@
#pragma GCC system_header
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wpedantic" // include_next
+
#include <bits/c++config.h>
#include_next <errno.h>
+#pragma GCC diagnostic pop
+
// Adhere to section 17.4.1.2 clause 5 of ISO 14882:1998
#ifndef errno
#define errno errno
diff --git a/libstdc++-v3/include/c/cfloat b/libstdc++-v3/include/c/cfloat
index 81d9772..1f9edad 100644
--- a/libstdc++-v3/include/c/cfloat
+++ b/libstdc++-v3/include/c/cfloat
@@ -31,7 +31,12 @@
#pragma GCC system_header
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wpedantic" // include_next
+
#include <bits/c++config.h>
#include_next <float.h>
+#pragma GCC diagnostic pop
+
#endif
diff --git a/libstdc++-v3/include/c/climits b/libstdc++-v3/include/c/climits
index 255bed4..846fe19 100644
--- a/libstdc++-v3/include/c/climits
+++ b/libstdc++-v3/include/c/climits
@@ -31,7 +31,12 @@
#pragma GCC system_header
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wpedantic" // include_next
+
#include <bits/c++config.h>
#include_next <limits.h>
+#pragma GCC diagnostic pop
+
#endif
diff --git a/libstdc++-v3/include/c/clocale b/libstdc++-v3/include/c/clocale
index 4258df1..62d85ed 100644
--- a/libstdc++-v3/include/c/clocale
+++ b/libstdc++-v3/include/c/clocale
@@ -31,6 +31,11 @@
#pragma GCC system_header
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wpedantic" // include_next
+
#include_next <locale.h>
+#pragma GCC diagnostic pop
+
#endif
diff --git a/libstdc++-v3/include/c/cmath b/libstdc++-v3/include/c/cmath
index 43020ee..371ee59 100644
--- a/libstdc++-v3/include/c/cmath
+++ b/libstdc++-v3/include/c/cmath
@@ -33,8 +33,13 @@
#include <bits/c++config.h>
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wpedantic" // include_next
+
#include_next <math.h>
+#pragma GCC diagnostic pop
+
// Get rid of those macros defined in <math.h> in lieu of real functions.
#undef abs
#undef div
diff --git a/libstdc++-v3/include/c/csetjmp b/libstdc++-v3/include/c/csetjmp
index 4a5b033..acf113a 100644
--- a/libstdc++-v3/include/c/csetjmp
+++ b/libstdc++-v3/include/c/csetjmp
@@ -31,8 +31,13 @@
#pragma GCC system_header
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wpedantic" // include_next
+
#include_next <setjmp.h>
+#pragma GCC diagnostic pop
+
// Get rid of those macros defined in <setjmp.h> in lieu of real functions.
#undef longjmp
diff --git a/libstdc++-v3/include/c/csignal b/libstdc++-v3/include/c/csignal
index 040b483..c04bb60 100644
--- a/libstdc++-v3/include/c/csignal
+++ b/libstdc++-v3/include/c/csignal
@@ -31,6 +31,11 @@
#pragma GCC system_header
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wpedantic" // include_next
+
#include_next <signal.h>
+#pragma GCC diagnostic pop
+
#endif
diff --git a/libstdc++-v3/include/c/cstdarg b/libstdc++-v3/include/c/cstdarg
index 5d97e04..7648662 100644
--- a/libstdc++-v3/include/c/cstdarg
+++ b/libstdc++-v3/include/c/cstdarg
@@ -31,7 +31,12 @@
#pragma GCC system_header
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wpedantic" // include_next
+
#undef __need___va_list
#include_next <stdarg.h>
+#pragma GCC diagnostic pop
+
#endif
diff --git a/libstdc++-v3/include/c/cstddef b/libstdc++-v3/include/c/cstddef
index 4fd889a..e1435b9 100644
--- a/libstdc++-v3/include/c/cstddef
+++ b/libstdc++-v3/include/c/cstddef
@@ -31,10 +31,15 @@
#pragma GCC system_header
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wpedantic" // include_next
+
#define __need_size_t
#define __need_ptrdiff_t
#define __need_NULL
#define __need_offsetof
#include_next <stddef.h>
+#pragma GCC diagnostic pop
+
#endif
diff --git a/libstdc++-v3/include/c/cstdio b/libstdc++-v3/include/c/cstdio
index 0129305..99aead4 100644
--- a/libstdc++-v3/include/c/cstdio
+++ b/libstdc++-v3/include/c/cstdio
@@ -31,8 +31,13 @@
#pragma GCC system_header
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wpedantic" // include_next
+
#include_next <stdio.h>
+#pragma GCC diagnostic pop
+
// Get rid of those macros defined in <stdio.h> in lieu of real functions.
#undef clearerr
#undef fclose
diff --git a/libstdc++-v3/include/c/cstdlib b/libstdc++-v3/include/c/cstdlib
index f5707f8..75e6382 100644
--- a/libstdc++-v3/include/c/cstdlib
+++ b/libstdc++-v3/include/c/cstdlib
@@ -31,6 +31,11 @@
#pragma GCC system_header
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wpedantic" // include_next
+
#include_next <stdlib.h>
+#pragma GCC diagnostic pop
+
#endif
diff --git a/libstdc++-v3/include/c/cstring b/libstdc++-v3/include/c/cstring
index 0082080..05d7518 100644
--- a/libstdc++-v3/include/c/cstring
+++ b/libstdc++-v3/include/c/cstring
@@ -31,6 +31,11 @@
#pragma GCC system_header
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wpedantic" // include_next
+
#include_next <string.h>
+#pragma GCC diagnostic pop
+
#endif
diff --git a/libstdc++-v3/include/c/ctime b/libstdc++-v3/include/c/ctime
index 5476ff7..73e2a7a 100644
--- a/libstdc++-v3/include/c/ctime
+++ b/libstdc++-v3/include/c/ctime
@@ -31,6 +31,11 @@
#pragma GCC system_header
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wpedantic" // include_next
+
#include_next <time.h>
+#pragma GCC diagnostic pop
+
#endif
diff --git a/libstdc++-v3/include/c/cwchar b/libstdc++-v3/include/c/cwchar
index 7a62eb7..921de26 100644
--- a/libstdc++-v3/include/c/cwchar
+++ b/libstdc++-v3/include/c/cwchar
@@ -35,10 +35,15 @@
#include <cstddef>
#include <ctime>
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wpedantic" // include_next
+
#if _GLIBCXX_HAVE_WCHAR_H
#include_next <wchar.h>
#endif
+#pragma GCC diagnostic pop
+
// Need to do a bit of trickery here with mbstate_t as char_traits
// assumes it is in wchar.h, regardless of wchar_t specializations.
#ifndef _GLIBCXX_HAVE_MBSTATE_T
diff --git a/libstdc++-v3/include/c/cwctype b/libstdc++-v3/include/c/cwctype
index 011cead..0d2f55d 100644
--- a/libstdc++-v3/include/c/cwctype
+++ b/libstdc++-v3/include/c/cwctype
@@ -31,10 +31,15 @@
#pragma GCC system_header
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wpedantic" // include_next
+
#include <bits/c++config.h>
#if _GLIBCXX_HAVE_WCTYPE_H
#include_next <wctype.h>
#endif
+#pragma GCC diagnostic pop
+
#endif
diff --git a/libstdc++-v3/include/c_compatibility/fenv.h b/libstdc++-v3/include/c_compatibility/fenv.h
index 6800814..a587e73 100644
--- a/libstdc++-v3/include/c_compatibility/fenv.h
+++ b/libstdc++-v3/include/c_compatibility/fenv.h
@@ -31,11 +31,16 @@
#pragma GCC system_header
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wpedantic" // include_next
+
#include <bits/c++config.h>
#if _GLIBCXX_HAVE_FENV_H
# include_next <fenv.h>
#endif
+#pragma GCC diagnostic pop
+
#if __cplusplus >= 201103L
#if _GLIBCXX_USE_C99_FENV
diff --git a/libstdc++-v3/include/c_compatibility/inttypes.h b/libstdc++-v3/include/c_compatibility/inttypes.h
index bc63119..5a428ce 100644
--- a/libstdc++-v3/include/c_compatibility/inttypes.h
+++ b/libstdc++-v3/include/c_compatibility/inttypes.h
@@ -31,6 +31,9 @@
#pragma GCC system_header
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wpedantic" // include_next
+
#include <bits/c++config.h>
#if __cplusplus >= 201103L
@@ -88,4 +91,6 @@ namespace std
#endif // C++11
+#pragma GCC diagnostic pop
+
#endif // _GLIBCXX_INTTYPES_H
diff --git a/libstdc++-v3/include/c_compatibility/stdint.h b/libstdc++-v3/include/c_compatibility/stdint.h
index 0b6a8c1..2d892e7 100644
--- a/libstdc++-v3/include/c_compatibility/stdint.h
+++ b/libstdc++-v3/include/c_compatibility/stdint.h
@@ -31,6 +31,9 @@
#pragma GCC system_header
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wpedantic" // include_next
+
#include <bits/c++config.h>
#if __cplusplus >= 201103L
@@ -107,4 +110,6 @@ namespace std
#endif // C++11
+#pragma GCC diagnostic pop
+
#endif // _GLIBCXX_STDINT_H
diff --git a/libstdc++-v3/include/c_global/climits b/libstdc++-v3/include/c_global/climits
index 7e374ef..c85fc28 100644
--- a/libstdc++-v3/include/c_global/climits
+++ b/libstdc++-v3/include/c_global/climits
@@ -44,6 +44,9 @@
#ifndef _GLIBCXX_CLIMITS
#define _GLIBCXX_CLIMITS 1
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wlong-long"
+
#ifndef LLONG_MIN
#define LLONG_MIN (-__LONG_LONG_MAX__ - 1)
#endif
@@ -56,4 +59,6 @@
#define ULLONG_MAX (__LONG_LONG_MAX__ * 2ULL + 1)
#endif
+#pragma GCC diagnostic pop
+
#endif
diff --git a/libstdc++-v3/include/c_global/cmath b/libstdc++-v3/include/c_global/cmath
index dd0174f..4958dfd 100644
--- a/libstdc++-v3/include/c_global/cmath
+++ b/libstdc++-v3/include/c_global/cmath
@@ -43,9 +43,14 @@
#include <bits/c++config.h>
#include <bits/cpp_type_traits.h>
#include <ext/type_traits.h>
+
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wpedantic" // include_next
#define _GLIBCXX_INCLUDE_NEXT_C_HEADERS
#include_next <math.h>
#undef _GLIBCXX_INCLUDE_NEXT_C_HEADERS
+#pragma GCC diagnostic pop
+
#include <bits/std_abs.h>
#ifndef _GLIBCXX_CMATH
diff --git a/libstdc++-v3/include/c_global/cstddef b/libstdc++-v3/include/c_global/cstddef
index b25a6b3..f49f56a 100644
--- a/libstdc++-v3/include/c_global/cstddef
+++ b/libstdc++-v3/include/c_global/cstddef
@@ -52,6 +52,9 @@
#define __glibcxx_want_byte
#include <bits/version.h>
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wpedantic" // __int128
+
extern "C++"
{
#if __cplusplus >= 201103L
@@ -189,4 +192,6 @@ _GLIBCXX_END_NAMESPACE_VERSION
#endif // __cpp_lib_byte
} // extern "C++"
+#pragma GCC diagnostic pop
+
#endif // _GLIBCXX_CSTDDEF
diff --git a/libstdc++-v3/include/c_global/cstdlib b/libstdc++-v3/include/c_global/cstdlib
index 69e7a39..72baff2 100644
--- a/libstdc++-v3/include/c_global/cstdlib
+++ b/libstdc++-v3/include/c_global/cstdlib
@@ -75,9 +75,13 @@ namespace std
// Need to ensure this finds the C library's <stdlib.h> not a libstdc++
// wrapper that might already be installed later in the include search path.
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wpedantic" // include_next
#define _GLIBCXX_INCLUDE_NEXT_C_HEADERS
#include_next <stdlib.h>
#undef _GLIBCXX_INCLUDE_NEXT_C_HEADERS
+#pragma GCC diagnostic pop
+
#include <bits/std_abs.h>
// Get rid of those macros defined in <stdlib.h> in lieu of real functions.
diff --git a/libstdc++-v3/include/decimal/decimal b/libstdc++-v3/include/decimal/decimal
index d20e012..a64ddde4 100644
--- a/libstdc++-v3/include/decimal/decimal
+++ b/libstdc++-v3/include/decimal/decimal
@@ -33,6 +33,9 @@
#pragma GCC system_header
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wpedantic" // DF suffix
+
#include <bits/c++config.h>
#ifndef _GLIBCXX_USE_DECIMAL_FLOAT
@@ -491,4 +494,5 @@ _GLIBCXX_END_NAMESPACE_VERSION
#include <decimal/decimal.h>
+#pragma GCC diagnostic pop
#endif /* _GLIBCXX_DECIMAL */
diff --git a/libstdc++-v3/include/ext/concurrence.h b/libstdc++-v3/include/ext/concurrence.h
index 7629c1b..8188c13 100644
--- a/libstdc++-v3/include/ext/concurrence.h
+++ b/libstdc++-v3/include/ext/concurrence.h
@@ -37,6 +37,9 @@
#include <bits/cpp_type_traits.h>
#include <ext/type_traits.h>
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wc++11-extensions"
+
namespace __gnu_cxx _GLIBCXX_VISIBILITY(default)
{
_GLIBCXX_BEGIN_NAMESPACE_VERSION
@@ -312,4 +315,6 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
_GLIBCXX_END_NAMESPACE_VERSION
} // namespace
+#pragma GCC diagnostic pop
+
#endif
diff --git a/libstdc++-v3/include/ext/rope b/libstdc++-v3/include/ext/rope
index b5ebb13..19199e8 100644
--- a/libstdc++-v3/include/ext/rope
+++ b/libstdc++-v3/include/ext/rope
@@ -66,6 +66,10 @@
#include <ext/memory> // For uninitialized_copy_n
+// Ignore warnings about default member initializers.
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wc++11-extensions"
+
namespace __gnu_cxx _GLIBCXX_VISIBILITY(default)
{
_GLIBCXX_BEGIN_NAMESPACE_VERSION
@@ -3009,6 +3013,8 @@ namespace tr1
_GLIBCXX_END_NAMESPACE_VERSION
} // namespace std
+#pragma GCC diagnostic pop
+
# include <ext/ropeimpl.h>
#endif
diff --git a/libstdc++-v3/include/ext/type_traits.h b/libstdc++-v3/include/ext/type_traits.h
index 75d7edf..165e1b4 100644
--- a/libstdc++-v3/include/ext/type_traits.h
+++ b/libstdc++-v3/include/ext/type_traits.h
@@ -34,6 +34,9 @@
#include <bits/c++config.h>
#include <bits/cpp_type_traits.h>
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wlong-long"
+
extern "C++" {
namespace __gnu_cxx _GLIBCXX_VISIBILITY(default)
@@ -270,4 +273,6 @@ _GLIBCXX_END_NAMESPACE_VERSION
} // namespace
} // extern "C++"
+#pragma GCC diagnostic pop
+
#endif
diff --git a/libstdc++-v3/include/std/any b/libstdc++-v3/include/std/any
index 9ae29aa..d24260e 100644
--- a/libstdc++-v3/include/std/any
+++ b/libstdc++-v3/include/std/any
@@ -42,6 +42,9 @@
#include <type_traits>
#include <bits/utility.h> // in_place_type_t
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wdeprecated-declarations" // aligned_storage
+
namespace std _GLIBCXX_VISIBILITY(default)
{
_GLIBCXX_BEGIN_NAMESPACE_VERSION
@@ -661,5 +664,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
_GLIBCXX_END_NAMESPACE_VERSION
} // namespace std
+#pragma GCC diagnostic pop
+
#endif // __cpp_lib_any
#endif // _GLIBCXX_ANY
diff --git a/libstdc++-v3/include/std/charconv b/libstdc++-v3/include/std/charconv
index 00c4f20..de67139 100644
--- a/libstdc++-v3/include/std/charconv
+++ b/libstdc++-v3/include/std/charconv
@@ -31,6 +31,9 @@
#pragma GCC system_header
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wpedantic" // __int128
+
#include <bits/requires_hosted.h> // for error codes
// As an extension we support <charconv> in C++14, but this header should not
@@ -932,4 +935,5 @@ namespace __detail
_GLIBCXX_END_NAMESPACE_VERSION
} // namespace std
#endif // C++14
+#pragma GCC diagnostic pop
#endif // _GLIBCXX_CHARCONV
diff --git a/libstdc++-v3/include/std/complex b/libstdc++-v3/include/std/complex
index be810b6..c688d0c 100644
--- a/libstdc++-v3/include/std/complex
+++ b/libstdc++-v3/include/std/complex
@@ -38,6 +38,9 @@
#pragma GCC system_header
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wc++11-extensions" // extern template
+
#include <bits/c++config.h>
#include <bits/cpp_type_traits.h>
#include <ext/type_traits.h>
@@ -2650,4 +2653,5 @@ _GLIBCXX_END_NAMESPACE_VERSION
#pragma clang diagnostic pop
#endif
+#pragma GCC diagnostic pop
#endif /* _GLIBCXX_COMPLEX */
diff --git a/libstdc++-v3/include/std/coroutine b/libstdc++-v3/include/std/coroutine
index ccd016b..30b4d33 100644
--- a/libstdc++-v3/include/std/coroutine
+++ b/libstdc++-v3/include/std/coroutine
@@ -31,6 +31,9 @@
#pragma GCC system_header
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wc++17-extensions"
+
#define __glibcxx_want_coroutine
#include <bits/version.h>
@@ -358,4 +361,5 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
#endif // __cpp_lib_coroutine
+#pragma GCC diagnostic pop
#endif // _GLIBCXX_COROUTINE
diff --git a/libstdc++-v3/include/std/format b/libstdc++-v3/include/std/format
index e963d7f..4c5377a 100644
--- a/libstdc++-v3/include/std/format
+++ b/libstdc++-v3/include/std/format
@@ -63,6 +63,10 @@
# include <cctype>
#endif
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wpedantic" // __int128
+#pragma GCC diagnostic ignored "-Wc++23-extensions" // bf16
+
namespace std _GLIBCXX_VISIBILITY(default)
{
_GLIBCXX_BEGIN_NAMESPACE_VERSION
@@ -1674,6 +1678,10 @@ namespace __format
do
{
+ // Mangling of this lambda, and thus resize_and_overwrite
+ // instantiated with it, was fixed in ABI 18 (G++ 13). Since
+ // <format> was new in G++ 13, and is experimental, that
+ // isn't a problem.
auto __overwrite = [&__to_chars, &__res] (char* __p, size_t __n)
{
__res = __to_chars(__p + 1, __p + __n - 1);
@@ -4737,4 +4745,5 @@ namespace __format
_GLIBCXX_END_NAMESPACE_VERSION
} // namespace std
#endif // __cpp_lib_format
+#pragma GCC diagnostic pop
#endif // _GLIBCXX_FORMAT
diff --git a/libstdc++-v3/include/std/iomanip b/libstdc++-v3/include/std/iomanip
index fdf80fc..9d8ecea 100644
--- a/libstdc++-v3/include/std/iomanip
+++ b/libstdc++-v3/include/std/iomanip
@@ -35,6 +35,9 @@
#pragma GCC system_header
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wc++11-extensions"
+
#include <bits/requires_hosted.h> // iostreams
#include <bits/c++config.h>
@@ -543,4 +546,5 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
_GLIBCXX_END_NAMESPACE_VERSION
} // namespace
+#pragma GCC diagnostic pop
#endif /* _GLIBCXX_IOMANIP */
diff --git a/libstdc++-v3/include/std/limits b/libstdc++-v3/include/std/limits
index 4b0698e..b0ab57c 100644
--- a/libstdc++-v3/include/std/limits
+++ b/libstdc++-v3/include/std/limits
@@ -39,6 +39,11 @@
#pragma GCC system_header
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wpedantic" // Q suffix
+#pragma GCC diagnostic ignored "-Wlong-long"
+#pragma GCC diagnostic ignored "-Wc++23-extensions"
+
#include <bits/c++config.h>
//
@@ -2229,4 +2234,5 @@ _GLIBCXX_END_NAMESPACE_VERSION
#undef __glibcxx_digits10
#undef __glibcxx_max_digits10
+#pragma GCC diagnostic pop
#endif // _GLIBCXX_NUMERIC_LIMITS
diff --git a/libstdc++-v3/include/std/numbers b/libstdc++-v3/include/std/numbers
index 9836afa..f04000f1 100644
--- a/libstdc++-v3/include/std/numbers
+++ b/libstdc++-v3/include/std/numbers
@@ -38,6 +38,9 @@
#include <type_traits>
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wpedantic" // Q extension
+
namespace std _GLIBCXX_VISIBILITY(default)
{
_GLIBCXX_BEGIN_NAMESPACE_VERSION
@@ -232,5 +235,7 @@ __glibcxx_numbers (__float128, Q);
_GLIBCXX_END_NAMESPACE_VERSION
} // namespace std
+#pragma GCC diagnostic pop
+
#endif // __cpp_lib_math_constants
#endif // _GLIBCXX_NUMBERS
diff --git a/libstdc++-v3/include/tr1/functional b/libstdc++-v3/include/tr1/functional
index 5fc8086..f2cd42b 100644
--- a/libstdc++-v3/include/tr1/functional
+++ b/libstdc++-v3/include/tr1/functional
@@ -44,6 +44,10 @@
#include <ext/type_traits.h>
#include <bits/move.h> // for std::__addressof
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wvolatile" // volatile parm/return
+#pragma GCC diagnostic ignored "-Wc++11-extensions"
+
namespace std _GLIBCXX_VISIBILITY(default)
{
_GLIBCXX_BEGIN_NAMESPACE_VERSION
@@ -2282,4 +2286,5 @@ namespace tr1
_GLIBCXX_END_NAMESPACE_VERSION
}
+#pragma GCC diagnostic pop
#endif // _GLIBCXX_TR1_FUNCTIONAL
diff --git a/libstdc++-v3/include/tr1/tuple b/libstdc++-v3/include/tr1/tuple
index be26d28..40e2d09 100644
--- a/libstdc++-v3/include/tr1/tuple
+++ b/libstdc++-v3/include/tr1/tuple
@@ -34,6 +34,9 @@
#pragma GCC system_header
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wc++11-extensions"
+
#include <bits/requires_hosted.h> // TR1
#include <utility>
@@ -425,4 +428,5 @@ namespace tr1
_GLIBCXX_END_NAMESPACE_VERSION
}
+#pragma GCC diagnostic pop
#endif // _GLIBCXX_TR1_TUPLE
diff --git a/libstdc++-v3/include/tr1/type_traits b/libstdc++-v3/include/tr1/type_traits
index f5714b0..62b30e7 100644
--- a/libstdc++-v3/include/tr1/type_traits
+++ b/libstdc++-v3/include/tr1/type_traits
@@ -31,6 +31,9 @@
#pragma GCC system_header
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wc++11-extensions"
+
#include <bits/requires_hosted.h> // TR1
#include <bits/c++config.h>
@@ -684,4 +687,5 @@ namespace tr1
_GLIBCXX_END_NAMESPACE_VERSION
}
+#pragma GCC diagnostic pop
#endif // _GLIBCXX_TR1_TYPE_TRAITS