From 1f153a1d2a97feaca914787f3d08b7d952b4bfe0 Mon Sep 17 00:00:00 2001 From: Jonathan Wakely Date: Wed, 7 Dec 2016 15:22:51 +0000 Subject: [PATCH] Replace dynamic exception specifications in testsuite * testsuite/util/testsuite_hooks.h (THROW): Define. * testsuite/util/replacement_memory_operators.h: Include testsuite_hooks.h and use THROW macro. * testsuite/util/testsuite_tr1.h: Likewise. * testsuite/20_util/allocator/1.cc: Use THROW macro. * testsuite/22_locale/locale/cons/12352.cc: Likewise. * testsuite/23_containers/vector/zero_sized_allocations.cc: Likewise. * testsuite/30_threads/lock_guard/cons/1.cc: Replace dynamic exception specification with noexcept-specifier. * testsuite/ext/pool_allocator/allocate_chunk.cc: Include testsuite_hooks.h and use THROW macro. * testsuite/ext/profile/replace_new.cc: Likewise. From-SVN: r243353 --- libstdc++-v3/ChangeLog | 13 +++++++++++++ libstdc++-v3/testsuite/20_util/allocator/1.cc | 2 +- .../testsuite/22_locale/locale/cons/12352.cc | 4 ++-- .../vector/zero_sized_allocations.cc | 2 +- .../testsuite/30_threads/lock_guard/cons/1.cc | 2 +- .../ext/pool_allocator/allocate_chunk.cc | 3 ++- libstdc++-v3/testsuite/ext/profile/replace_new.cc | 3 ++- .../testsuite/util/replacement_memory_operators.h | 5 +++-- libstdc++-v3/testsuite/util/testsuite_hooks.h | 6 ++++++ libstdc++-v3/testsuite/util/testsuite_tr1.h | 15 ++++++++------- 10 files changed, 39 insertions(+), 16 deletions(-) diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index 53b4511cd35..c102e607804 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,5 +1,18 @@ 2016-12-07 Jonathan Wakely + * testsuite/util/testsuite_hooks.h (THROW): Define. + * testsuite/util/replacement_memory_operators.h: Include + testsuite_hooks.h and use THROW macro. + * testsuite/util/testsuite_tr1.h: Likewise. + * testsuite/20_util/allocator/1.cc: Use THROW macro. + * testsuite/22_locale/locale/cons/12352.cc: Likewise. + * testsuite/23_containers/vector/zero_sized_allocations.cc: Likewise. + * testsuite/30_threads/lock_guard/cons/1.cc: Replace dynamic exception + specification with noexcept-specifier. + * testsuite/ext/pool_allocator/allocate_chunk.cc: Include + testsuite_hooks.h and use THROW macro. + * testsuite/ext/profile/replace_new.cc: Likewise. + * include/ext/bitmap_allocator.h (bitmap_allocator::_S_refill_pool) (bitmap_allocator::_M_allocate_single_object) (bitmap_allocator::_M_get): Use _GLIBCXX_THROW macro. diff --git a/libstdc++-v3/testsuite/20_util/allocator/1.cc b/libstdc++-v3/testsuite/20_util/allocator/1.cc index 6905c86bd2d..0c068394c9a 100644 --- a/libstdc++-v3/testsuite/20_util/allocator/1.cc +++ b/libstdc++-v3/testsuite/20_util/allocator/1.cc @@ -30,7 +30,7 @@ bool check_new = false; bool check_delete = false; void* -operator new(std::size_t n) throw(std::bad_alloc) +operator new(std::size_t n) THROW(std::bad_alloc) { check_new = true; return std::malloc(n); diff --git a/libstdc++-v3/testsuite/22_locale/locale/cons/12352.cc b/libstdc++-v3/testsuite/22_locale/locale/cons/12352.cc index 8faf71490fa..d514b2affcb 100644 --- a/libstdc++-v3/testsuite/22_locale/locale/cons/12352.cc +++ b/libstdc++-v3/testsuite/22_locale/locale/cons/12352.cc @@ -45,7 +45,7 @@ void deallocate(void* p) std::free(p); } -void* operator new(std::size_t n) throw (std::bad_alloc) +void* operator new(std::size_t n) THROW (std::bad_alloc) { void* ret = allocate(n); if (!ret) @@ -53,7 +53,7 @@ void* operator new(std::size_t n) throw (std::bad_alloc) return ret; } -void* operator new[](std::size_t n) throw (std::bad_alloc) +void* operator new[](std::size_t n) THROW (std::bad_alloc) { void* ret = allocate(n); if (!ret) diff --git a/libstdc++-v3/testsuite/23_containers/vector/zero_sized_allocations.cc b/libstdc++-v3/testsuite/23_containers/vector/zero_sized_allocations.cc index 272caf3c793..524241b3fdd 100644 --- a/libstdc++-v3/testsuite/23_containers/vector/zero_sized_allocations.cc +++ b/libstdc++-v3/testsuite/23_containers/vector/zero_sized_allocations.cc @@ -22,7 +22,7 @@ unsigned int zero_sized_news = 0; -void *operator new(std::size_t size) throw (std::bad_alloc) +void *operator new(std::size_t size) THROW (std::bad_alloc) { /* malloc(0) is unpredictable; avoid it. */ if (size == 0) diff --git a/libstdc++-v3/testsuite/30_threads/lock_guard/cons/1.cc b/libstdc++-v3/testsuite/30_threads/lock_guard/cons/1.cc index 1296760aae5..414b678c6c9 100644 --- a/libstdc++-v3/testsuite/30_threads/lock_guard/cons/1.cc +++ b/libstdc++-v3/testsuite/30_threads/lock_guard/cons/1.cc @@ -26,7 +26,7 @@ struct Mutex { Mutex() : locked(false) { } - ~Mutex() throw(int) + ~Mutex() noexcept(false) { if (locked) throw 0; diff --git a/libstdc++-v3/testsuite/ext/pool_allocator/allocate_chunk.cc b/libstdc++-v3/testsuite/ext/pool_allocator/allocate_chunk.cc index c751739d185..78380398421 100644 --- a/libstdc++-v3/testsuite/ext/pool_allocator/allocate_chunk.cc +++ b/libstdc++-v3/testsuite/ext/pool_allocator/allocate_chunk.cc @@ -20,6 +20,7 @@ // 20.4.1.1 allocator members #include +#include struct small { @@ -32,7 +33,7 @@ struct big }; void* -operator new(size_t n) throw(std::bad_alloc) +operator new(size_t n) THROW(std::bad_alloc) { static bool first = true; if (!first) diff --git a/libstdc++-v3/testsuite/ext/profile/replace_new.cc b/libstdc++-v3/testsuite/ext/profile/replace_new.cc index be5ec096894..9c9459488e4 100644 --- a/libstdc++-v3/testsuite/ext/profile/replace_new.cc +++ b/libstdc++-v3/testsuite/ext/profile/replace_new.cc @@ -20,10 +20,11 @@ // { dg-require-profile-mode "" } #include +#include using std::vector; -void* operator new(std::size_t size) throw(std::bad_alloc) +void* operator new(std::size_t size) THROW(std::bad_alloc) { void* p = std::malloc(size); if (!p) diff --git a/libstdc++-v3/testsuite/util/replacement_memory_operators.h b/libstdc++-v3/testsuite/util/replacement_memory_operators.h index d063edf945b..5ea6753e445 100644 --- a/libstdc++-v3/testsuite/util/replacement_memory_operators.h +++ b/libstdc++-v3/testsuite/util/replacement_memory_operators.h @@ -20,6 +20,7 @@ #include #include #include +#include namespace __gnu_test { @@ -32,7 +33,7 @@ namespace __gnu_test counter() : _M_count(0), _M_throw(true) { } - ~counter() throw (counter_error) + ~counter() THROW (counter_error) { if (_M_throw && _M_count != 0) throw counter_error(); @@ -86,7 +87,7 @@ namespace __gnu_test } } // namespace __gnu_test -void* operator new(std::size_t size) throw(std::bad_alloc) +void* operator new(std::size_t size) THROW(std::bad_alloc) { std::printf("operator new is called \n"); void* p = std::malloc(size); diff --git a/libstdc++-v3/testsuite/util/testsuite_hooks.h b/libstdc++-v3/testsuite/util/testsuite_hooks.h index e4c4866eba4..9974faa40cb 100644 --- a/libstdc++-v3/testsuite/util/testsuite_hooks.h +++ b/libstdc++-v3/testsuite/util/testsuite_hooks.h @@ -75,6 +75,12 @@ #langTERR ".ISO8859-" #part "@euro" : #langTERR ".ISO8859-" #part) #endif +#if __cplusplus < 201103L +# define THROW(X) throw(X) +#else +# define THROW(X) noexcept(false) +#endif + namespace __gnu_test { // All macros are defined in GLIBCXX_CONFIGURE_TESTSUITE and imported diff --git a/libstdc++-v3/testsuite/util/testsuite_tr1.h b/libstdc++-v3/testsuite/util/testsuite_tr1.h index 9f2c632da8c..c6a4986b983 100644 --- a/libstdc++-v3/testsuite/util/testsuite_tr1.h +++ b/libstdc++-v3/testsuite/util/testsuite_tr1.h @@ -23,6 +23,7 @@ #define _GLIBCXX_TESTSUITE_TR1_H #include +#include namespace __gnu_test { @@ -146,25 +147,25 @@ namespace __gnu_test struct ThrowExplicitClass { - ThrowExplicitClass(double&) throw(int); - explicit ThrowExplicitClass(int&) throw(int); - ThrowExplicitClass(double&, int&, double&) throw(int); + ThrowExplicitClass(double&) THROW(int); + explicit ThrowExplicitClass(int&) THROW(int); + ThrowExplicitClass(double&, int&, double&) THROW(int); }; struct ThrowDefaultClass { - ThrowDefaultClass() throw(int); + ThrowDefaultClass() THROW(int); }; struct ThrowCopyConsClass { - ThrowCopyConsClass(const ThrowCopyConsClass&) throw(int); + ThrowCopyConsClass(const ThrowCopyConsClass&) THROW(int); }; #if __cplusplus >= 201103L struct ThrowMoveConsClass { - ThrowMoveConsClass(ThrowMoveConsClass&&) throw(int); + ThrowMoveConsClass(ThrowMoveConsClass&&) THROW(int); }; struct NoexceptExplicitClass @@ -558,7 +559,7 @@ namespace __gnu_test struct TD2 { - ~TD2() throw(int); + ~TD2() THROW(int); }; struct Aggr -- 2.30.2