libstdc++: Fix -Wsystem-headers warnings in tests
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.
This commit is contained in:
parent
8f6d25f19b
commit
bbcb84bba0
13 changed files with 40 additions and 27 deletions
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
// { dg-do run { target c++17 } }
|
||||
// { dg-options "-Wno-init-list-lifetime" }
|
||||
|
||||
// Copyright (C) 2020-2022 Free Software Foundation, Inc.
|
||||
//
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
// { dg-do run { target c++17 } }
|
||||
// { dg-options "-Wno-init-list-lifetime" }
|
||||
|
||||
// Copyright (C) 2020-2022 Free Software Foundation, Inc.
|
||||
//
|
||||
|
|
|
@ -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" }
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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" }
|
||||
|
|
|
@ -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()
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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));
|
||||
|
|
|
@ -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));
|
||||
|
|
Loading…
Add table
Reference in a new issue