libstdc++: Fix -Wsystem-headers warnings
authorJonathan Wakely <jwakely@redhat.com>
Sat, 5 Nov 2022 12:35:55 +0000 (12:35 +0000)
committerJonathan Wakely <jwakely@redhat.com>
Tue, 8 Nov 2022 17:35:15 +0000 (17:35 +0000)
Fix some problems noticed with -Wsystem-headers.

libstdc++-v3/ChangeLog:

* include/bits/stl_tempbuf.h (_Temporary_buffer): Disable
warnings about get_temporary_buffer being deprecated.
* include/ext/functional (mem_fun1, mem_fun1_ref): Disable
warnings about mem_fun1_t, const_mem_fun1_t, mem_fun1_ref_t and
const_mem_fun1_ref_t being deprecated.
* include/std/array (__array_traits<T, 0>): Remove artificial
attributes which give warnings about being ignored.
* include/std/spanstream (basic_spanbuf::setbuf): Add assertion
and adjust to avoid narrowing warning.
* libsupc++/exception_ptr.h [!__cpp_rtti && !__cpp_exceptions]
(make_exception_ptr): Add missing inline specifier.

libstdc++-v3/include/bits/stl_tempbuf.h
libstdc++-v3/include/ext/functional
libstdc++-v3/include/std/array
libstdc++-v3/include/std/spanstream
libstdc++-v3/libsupc++/exception_ptr.h

index b13aa3b..f3d4dd7 100644 (file)
@@ -257,6 +257,8 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
          __ucr(__first, __last, __seed);
     }
 
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
   template<typename _ForwardIterator, typename _Tp>
     _Temporary_buffer<_ForwardIterator, _Tp>::
     _Temporary_buffer(_ForwardIterator __seed, size_type __original_len)
@@ -281,6 +283,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
            }
        }
     }
+#pragma GCC diagnostic pop
 
 _GLIBCXX_END_NAMESPACE_VERSION
 } // namespace
index 9cf864d..a947ee6 100644 (file)
@@ -396,8 +396,6 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
     { _M_initialize(161803398u); }
   };
 
-#pragma GCC diagnostic pop
-
   // Mem_fun adaptor helper functions mem_fun1 and mem_fun1_ref,
   // provided for backward compatibility, they are no longer part of
   // the C++ standard.
@@ -422,6 +420,8 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
     mem_fun1_ref(_Ret (_Tp::*__f)(_Arg) const)
     { return std::const_mem_fun1_ref_t<_Ret, _Tp, _Arg>(__f); }
 
+#pragma GCC diagnostic pop
+
 _GLIBCXX_END_NAMESPACE_VERSION
 } // namespace
 
index 7ba92d0..e26390e 100644 (file)
@@ -64,11 +64,11 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
      struct _Type
      {
        // Indexing is undefined.
-       __attribute__((__always_inline__,__artificial__,__noreturn__))
+       __attribute__((__always_inline__,__noreturn__))
        _Tp& operator[](size_t) const noexcept { __builtin_trap(); }
 
        // Conversion to a pointer produces a null pointer.
-       __attribute__((__always_inline__,__artificial__))
+       __attribute__((__always_inline__))
        operator _Tp*() const noexcept { return nullptr; }
      };
 
index 6abf013..483996b 100644 (file)
@@ -136,7 +136,8 @@ template<typename _CharT, typename _Traits>
     basic_streambuf<_CharT, _Traits>*
     setbuf(_CharT* __s, streamsize __n) override
     {
-      span({__s, __n});
+      __glibcxx_assert(__n >= 0);
+      this->span(std::span<_CharT>(__s, __n));
       return this;
     }
 
index fd9ceec..b011810 100644 (file)
@@ -280,7 +280,7 @@ namespace std _GLIBCXX_VISIBILITY(default)
   // instead of a working one compiled with RTTI and/or exceptions enabled.
   template<typename _Ex>
     __attribute__ ((__always_inline__))
-    exception_ptr
+    inline exception_ptr
     make_exception_ptr(_Ex) _GLIBCXX_USE_NOEXCEPT
     { return exception_ptr(); }
 #endif