Commit 1f153a1d by Jonathan Wakely Committed by Jonathan Wakely

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
parent ba454dfb
2016-12-07 Jonathan Wakely <jwakely@redhat.com> 2016-12-07 Jonathan Wakely <jwakely@redhat.com>
* 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) * include/ext/bitmap_allocator.h (bitmap_allocator::_S_refill_pool)
(bitmap_allocator::_M_allocate_single_object) (bitmap_allocator::_M_allocate_single_object)
(bitmap_allocator::_M_get): Use _GLIBCXX_THROW macro. (bitmap_allocator::_M_get): Use _GLIBCXX_THROW macro.
......
...@@ -30,7 +30,7 @@ bool check_new = false; ...@@ -30,7 +30,7 @@ bool check_new = false;
bool check_delete = false; bool check_delete = false;
void* void*
operator new(std::size_t n) throw(std::bad_alloc) operator new(std::size_t n) THROW(std::bad_alloc)
{ {
check_new = true; check_new = true;
return std::malloc(n); return std::malloc(n);
......
...@@ -45,7 +45,7 @@ void deallocate(void* p) ...@@ -45,7 +45,7 @@ void deallocate(void* p)
std::free(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); void* ret = allocate(n);
if (!ret) if (!ret)
...@@ -53,7 +53,7 @@ void* operator new(std::size_t n) throw (std::bad_alloc) ...@@ -53,7 +53,7 @@ void* operator new(std::size_t n) throw (std::bad_alloc)
return ret; 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); void* ret = allocate(n);
if (!ret) if (!ret)
......
...@@ -22,7 +22,7 @@ ...@@ -22,7 +22,7 @@
unsigned int zero_sized_news = 0; 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. */ /* malloc(0) is unpredictable; avoid it. */
if (size == 0) if (size == 0)
......
...@@ -26,7 +26,7 @@ struct Mutex ...@@ -26,7 +26,7 @@ struct Mutex
{ {
Mutex() : locked(false) { } Mutex() : locked(false) { }
~Mutex() throw(int) ~Mutex() noexcept(false)
{ {
if (locked) if (locked)
throw 0; throw 0;
......
...@@ -20,6 +20,7 @@ ...@@ -20,6 +20,7 @@
// 20.4.1.1 allocator members // 20.4.1.1 allocator members
#include <ext/pool_allocator.h> #include <ext/pool_allocator.h>
#include <testsuite_hooks.h>
struct small struct small
{ {
...@@ -32,7 +33,7 @@ struct big ...@@ -32,7 +33,7 @@ struct big
}; };
void* void*
operator new(size_t n) throw(std::bad_alloc) operator new(size_t n) THROW(std::bad_alloc)
{ {
static bool first = true; static bool first = true;
if (!first) if (!first)
......
...@@ -20,10 +20,11 @@ ...@@ -20,10 +20,11 @@
// { dg-require-profile-mode "" } // { dg-require-profile-mode "" }
#include <vector> #include <vector>
#include <testsuite_hooks.h>
using std::vector; 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); void* p = std::malloc(size);
if (!p) if (!p)
......
...@@ -20,6 +20,7 @@ ...@@ -20,6 +20,7 @@
#include <stdexcept> #include <stdexcept>
#include <cstdlib> #include <cstdlib>
#include <cstdio> #include <cstdio>
#include <testsuite_hooks.h>
namespace __gnu_test namespace __gnu_test
{ {
...@@ -32,7 +33,7 @@ namespace __gnu_test ...@@ -32,7 +33,7 @@ namespace __gnu_test
counter() : _M_count(0), _M_throw(true) { } counter() : _M_count(0), _M_throw(true) { }
~counter() throw (counter_error) ~counter() THROW (counter_error)
{ {
if (_M_throw && _M_count != 0) if (_M_throw && _M_count != 0)
throw counter_error(); throw counter_error();
...@@ -86,7 +87,7 @@ namespace __gnu_test ...@@ -86,7 +87,7 @@ namespace __gnu_test
} }
} // 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"); std::printf("operator new is called \n");
void* p = std::malloc(size); void* p = std::malloc(size);
......
...@@ -75,6 +75,12 @@ ...@@ -75,6 +75,12 @@
#langTERR ".ISO8859-" #part "@euro" : #langTERR ".ISO8859-" #part) #langTERR ".ISO8859-" #part "@euro" : #langTERR ".ISO8859-" #part)
#endif #endif
#if __cplusplus < 201103L
# define THROW(X) throw(X)
#else
# define THROW(X) noexcept(false)
#endif
namespace __gnu_test namespace __gnu_test
{ {
// All macros are defined in GLIBCXX_CONFIGURE_TESTSUITE and imported // All macros are defined in GLIBCXX_CONFIGURE_TESTSUITE and imported
......
...@@ -23,6 +23,7 @@ ...@@ -23,6 +23,7 @@
#define _GLIBCXX_TESTSUITE_TR1_H #define _GLIBCXX_TESTSUITE_TR1_H
#include <ext/type_traits.h> #include <ext/type_traits.h>
#include <testsuite_hooks.h>
namespace __gnu_test namespace __gnu_test
{ {
...@@ -146,25 +147,25 @@ namespace __gnu_test ...@@ -146,25 +147,25 @@ namespace __gnu_test
struct ThrowExplicitClass struct ThrowExplicitClass
{ {
ThrowExplicitClass(double&) throw(int); ThrowExplicitClass(double&) THROW(int);
explicit ThrowExplicitClass(int&) throw(int); explicit ThrowExplicitClass(int&) THROW(int);
ThrowExplicitClass(double&, int&, double&) throw(int); ThrowExplicitClass(double&, int&, double&) THROW(int);
}; };
struct ThrowDefaultClass struct ThrowDefaultClass
{ {
ThrowDefaultClass() throw(int); ThrowDefaultClass() THROW(int);
}; };
struct ThrowCopyConsClass struct ThrowCopyConsClass
{ {
ThrowCopyConsClass(const ThrowCopyConsClass&) throw(int); ThrowCopyConsClass(const ThrowCopyConsClass&) THROW(int);
}; };
#if __cplusplus >= 201103L #if __cplusplus >= 201103L
struct ThrowMoveConsClass struct ThrowMoveConsClass
{ {
ThrowMoveConsClass(ThrowMoveConsClass&&) throw(int); ThrowMoveConsClass(ThrowMoveConsClass&&) THROW(int);
}; };
struct NoexceptExplicitClass struct NoexceptExplicitClass
...@@ -558,7 +559,7 @@ namespace __gnu_test ...@@ -558,7 +559,7 @@ namespace __gnu_test
struct TD2 struct TD2
{ {
~TD2() throw(int); ~TD2() THROW(int);
}; };
struct Aggr struct Aggr
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment