]> gcc.gnu.org Git - gcc.git/commitdiff
libstdc++: Fix -Wsystem-headers warnings in tests
authorJonathan Wakely <jwakely@redhat.com>
Mon, 7 Nov 2022 15:00:34 +0000 (15:00 +0000)
committerJonathan Wakely <jwakely@redhat.com>
Tue, 8 Nov 2022 17:35:15 +0000 (17:35 +0000)
libstdc++-v3/ChangeLog:

* testsuite/18_support/new_nothrow.cc: Add missing noexcept
to operator delete replacements.
* testsuite/20_util/any/cons/92156.cc: Disable
-Winit-list-lifetime warnings from instantiating invalid
specialization of manager function.
* testsuite/20_util/any/modifiers/92156.cc: Likewise.
* testsuite/20_util/default_delete/void_neg.cc: Prune additional
diagnostics.
* testsuite/20_util/headers/memory/synopsis.cc: Add missing
noexcept.
* testsuite/20_util/shared_ptr/cons/void_neg.cc: Prune
additional diagnostic.
* testsuite/20_util/unique_ptr/creation/for_overwrite.cc: Add
missing noexcept to operator delete replacements.
* testsuite/21_strings/basic_string/cons/char/103919.cc:
Likewise.
* testsuite/23_containers/map/modifiers/emplace/92300.cc:
Likewise.
* testsuite/23_containers/map/modifiers/insert/92300.cc:
Likewise.
* testsuite/24_iterators/headers/iterator/range_access_c++11.cc:
Add missing noexcept to synopsis declarations.
* testsuite/24_iterators/headers/iterator/range_access_c++14.cc:
Likewise.
* testsuite/24_iterators/headers/iterator/range_access_c++17.cc:
Likewise.

13 files changed:
libstdc++-v3/testsuite/18_support/new_nothrow.cc
libstdc++-v3/testsuite/20_util/any/cons/92156.cc
libstdc++-v3/testsuite/20_util/any/modifiers/92156.cc
libstdc++-v3/testsuite/20_util/default_delete/void_neg.cc
libstdc++-v3/testsuite/20_util/headers/memory/synopsis.cc
libstdc++-v3/testsuite/20_util/shared_ptr/cons/void_neg.cc
libstdc++-v3/testsuite/20_util/unique_ptr/creation/for_overwrite.cc
libstdc++-v3/testsuite/21_strings/basic_string/cons/char/103919.cc
libstdc++-v3/testsuite/23_containers/map/modifiers/emplace/92300.cc
libstdc++-v3/testsuite/23_containers/map/modifiers/insert/92300.cc
libstdc++-v3/testsuite/24_iterators/headers/iterator/range_access_c++11.cc
libstdc++-v3/testsuite/24_iterators/headers/iterator/range_access_c++14.cc
libstdc++-v3/testsuite/24_iterators/headers/iterator/range_access_c++17.cc

index d5e7eb5878277c66cb6c5f35344fee2dfd76d5da..37806122bd017e338250b2bca9bd66a5ccd5d56f 100644 (file)
@@ -64,7 +64,13 @@ void* operator new (size_t n)
     }
 }
 
-void operator delete (void *p)
+#if __cplusplus >= 201103L
+#define NOEXCEPT noexcept
+#else
+#define NOEXCEPT
+#endif
+
+void operator delete (void *p) NOEXCEPT
 {
     ++delete_called;
     if (p)
@@ -77,18 +83,18 @@ void* operator new[] (size_t n)
     return operator new(n);
 }
 
-void operator delete[] (void *p)
+void operator delete[] (void *p) NOEXCEPT
 {
     ++delete_vec_called;
     operator delete(p);
 }
 
 #if __cplusplus >= 201402L
-void operator delete (void *p, std::size_t)
+void operator delete (void *p, std::size_t) noexcept
 {
   ::operator delete(p);
 }
-void operator delete[] (void *p, std::size_t)
+void operator delete[] (void *p, std::size_t) noexcept
 {
   ::operator delete[](p);
 }
index 71e9dd94090d7d2a14a2109ec5b40023075cbe3f..0e768df9a000a63928132b3f4613b459a95508a5 100644 (file)
@@ -1,4 +1,5 @@
 // { dg-do run { target c++17 } }
+// { dg-options "-Wno-init-list-lifetime" }
 
 // Copyright (C) 2020-2022 Free Software Foundation, Inc.
 //
index d8f9893667b1b3b4b2f81eca2899d864022ed24e..b98d0e8e92a0147d88e3210d5ebbb187e7c2de2e 100644 (file)
@@ -1,4 +1,5 @@
 // { dg-do run { target c++17 } }
+// { dg-options "-Wno-init-list-lifetime" }
 
 // Copyright (C) 2020-2022 Free Software Foundation, Inc.
 //
index f6aefc0a7ffccf82dc42e02d08a4b0cfc5a707df..04042c2d7450cc26ffefcb3e30b680c528be58ba 100644 (file)
@@ -27,3 +27,6 @@ void test01()
   d(nullptr);   // { dg-error "here" }
   // { dg-error "delete pointer to incomplete type" "" { target *-*-* } 0 }
 }
+
+// { dg-prune-output "invalid application of 'sizeof' to a void type" }
+// { dg-prune-output "deleting 'void*' is undefined" }
index 15437c72ee0471f75dfd587bfb829d4437407917..b14c4278cd39ab2ba30bce1c81ac4a1d96a87d9a 100644 (file)
@@ -32,7 +32,7 @@ namespace std
   template<class Ptr> struct pointer_traits;
   template<class T> struct pointer_traits<T*>;
 
-  void* align(size_t alignment, size_t size, void*& ptr, size_t& space);
+  void* align(size_t alignment, size_t size, void*& ptr, size_t& space) noexcept;
 
   struct allocator_arg_t;
   extern const allocator_arg_t allocator_arg;
index 1852f01e606d46692461427b61b55a3264695f35..215a1393f573a7c49d977fc2299cbcf018944ae6 100644 (file)
@@ -31,3 +31,5 @@ void test01()
 using std::shared_ptr;
 using std::is_constructible;
 static_assert(!is_constructible<shared_ptr<void>, const void*>::value, "");
+
+// { dg-prune-output "invalid application of 'sizeof' to a void type" }
index 65b5758b2ab568236a7b360d2f78e9200f2554cd..2eb3a9980a534ec6fe641ab8a18bfc2959d17da6 100644 (file)
@@ -41,8 +41,8 @@ void* operator new(std::size_t n)
   return p;
 }
 
-void operator delete(void* p) { std::free(p); }
-void operator delete(void* p, std::size_t) { std::free(p); }
+void operator delete(void* p) noexcept { std::free(p); }
+void operator delete(void* p, std::size_t) noexcept { std::free(p); }
 
 void
 test01()
index 94400e319ff3a7084c43db8fd4b8ddb7c3a77f2a..c11036b49c5b2943fd068a349c20b773d422e3a0 100644 (file)
@@ -14,12 +14,12 @@ void* operator new(std::size_t n)
   return std::malloc(n);
 }
 
-void operator delete(void* p)
+void operator delete(void* p) noexcept
 {
   std::free(p);
 }
 
-void operator delete(void* p, std::size_t)
+void operator delete(void* p, std::size_t) noexcept
 {
   std::free(p);
 }
index 937b4d9a103b216297786dfe12b4b86806b33c0a..ab48386bd8b292f036aa9fc3d6c32142516eb4ff 100644 (file)
@@ -12,12 +12,12 @@ void* operator new(std::size_t n)
   return std::malloc(n);
 }
 
-void operator delete(void* p)
+void operator delete(void* p) noexcept
 {
   std::free(p);
 }
 
-void operator delete(void* p, std::size_t)
+void operator delete(void* p, std::size_t) noexcept
 {
   std::free(p);
 }
index 80abdaf1f30bf81efffed99a247984d642dd92cb..51c0138e1a36888d4e72c0d47b5e4b4ca9d441ab 100644 (file)
@@ -12,12 +12,12 @@ void* operator new(std::size_t n)
   return std::malloc(n);
 }
 
-void operator delete(void* p)
+void operator delete(void* p) noexcept
 {
   std::free(p);
 }
 
-void operator delete(void* p, std::size_t)
+void operator delete(void* p, std::size_t) noexcept
 {
   std::free(p);
 }
index 819bffa9c6559d811738c81653c4970f60c8832f..c6262a5a3be9ea2d442011abb47eb8b441ec9132 100644 (file)
@@ -28,6 +28,6 @@ namespace std
   template<class C> auto end(C& c) -> decltype(c.end());
   template<class C> auto end(const C& c) -> decltype(c.end());
 
-  template<class T, size_t N> T* begin(T (&array)[N]);
-  template<class T, size_t N> T* end(T (&array)[N]);
+  template<class T, size_t N> T* begin(T (&array)[N]) noexcept;
+  template<class T, size_t N> T* end(T (&array)[N]) noexcept;
 }
index 425012f2d0847ee08b3aad19e9949d177289e4a6..81e6e84819f6d5fb32efd663e6a7b26a6d26a40b 100644 (file)
@@ -28,8 +28,8 @@ namespace std
   template<class C> auto end(C& c) -> decltype(c.end());
   template<class C> auto end(const C& c) -> decltype(c.end());
 
-  template<class T, size_t N> constexpr T* begin(T (&array)[N]);
-  template<class T, size_t N> constexpr T* end(T (&array)[N]);
+  template<class T, size_t N> constexpr T* begin(T (&array)[N]) noexcept;
+  template<class T, size_t N> constexpr T* end(T (&array)[N]) noexcept;
 
   template<class C> auto cbegin(const C& c) -> decltype(c.begin());
   template<class C> auto cend(const C& c) -> decltype(c.end());
@@ -41,14 +41,14 @@ namespace std
   template<class C> auto rend(const C& c) -> decltype(c.rend());
 
   template<class T, size_t N>
-    reverse_iterator<T*> rbegin(T (&array)[N]);
+    reverse_iterator<T*> rbegin(T (&array)[N]) noexcept;
   template<class T, size_t N>
-    reverse_iterator<T*> rend(T (&array)[N]);
+    reverse_iterator<T*> rend(T (&array)[N]) noexcept;
 
   template<class E>
-    reverse_iterator<const E*> rbegin(initializer_list<E>);
+    reverse_iterator<const E*> rbegin(initializer_list<E>) noexcept;
   template<class E>
-    reverse_iterator<const E*> rend(initializer_list<E>);
+    reverse_iterator<const E*> rend(initializer_list<E>) noexcept;
 
   template<class C>
     auto crbegin(const C& c) -> decltype(std::rbegin(c));
index da65c11f3a78aff25db030214507cdf13d26805f..912959436827bc5940e1ea1c23fd17b24047f039 100644 (file)
@@ -27,8 +27,8 @@ namespace std
   template<class C> constexpr auto end(C& c) -> decltype(c.end());
   template<class C> constexpr auto end(const C& c) -> decltype(c.end());
 
-  template<class T, size_t N> constexpr T* begin(T (&array)[N]);
-  template<class T, size_t N> constexpr T* end(T (&array)[N]);
+  template<class T, size_t N> constexpr T* begin(T (&array)[N]) noexcept;
+  template<class T, size_t N> constexpr T* end(T (&array)[N]) noexcept;
 
   template<class C> constexpr auto cbegin(const C& c) -> decltype(c.begin());
   template<class C> constexpr auto cend(const C& c) -> decltype(c.end());
@@ -40,14 +40,14 @@ namespace std
   template<class C> constexpr auto rend(const C& c) -> decltype(c.rend());
 
   template<class T, size_t N>
-    constexpr reverse_iterator<T*> rbegin(T (&array)[N]);
+    constexpr reverse_iterator<T*> rbegin(T (&array)[N]) noexcept;
   template<class T, size_t N>
-    constexpr reverse_iterator<T*> rend(T (&array)[N]);
+    constexpr reverse_iterator<T*> rend(T (&array)[N]) noexcept;
 
   template<class E>
-    constexpr reverse_iterator<const E*> rbegin(initializer_list<E>);
+    constexpr reverse_iterator<const E*> rbegin(initializer_list<E>) noexcept;
   template<class E>
-    constexpr reverse_iterator<const E*> rend(initializer_list<E>);
+    constexpr reverse_iterator<const E*> rend(initializer_list<E>) noexcept;
 
   template<class C>
     constexpr auto crbegin(const C& c) -> decltype(std::rbegin(c));
This page took 0.079532 seconds and 5 git commands to generate.