From 81b15cc40fc8cc257cb20cbfa5e389ce4665b3e1 Mon Sep 17 00:00:00 2001 From: Ivan Maidanski Date: Fri, 8 Jun 2018 11:34:23 +0300 Subject: Use noexcept specifier in gc_cpp if C++11 * gc_cpp.cc [!_MSC_VER && !__DMC__] (delete, delete[]): Rename GC_DECL_DELETE_THROW to GC_NOEXCEPT. * include/gc_cpp.h: Always include "new" header. * include/gc_cpp.h [!GC_NEW_DELETE_THROW_NOT_NEEDED] (GC_NEW_DELETE_NEED_THROW): Do not define if __BORLANDC__ or _MSC_VER, or __WATCOMC__, or if __cplusplus>=201103L and !__clang__. * include/gc_cpp.h (GC_DECL_DELETE_THROW): Remove. * include/gc_cpp.h [!GC_NOEXCEPT] (GC_NOEXCEPT): Define internal macro to except or throw(), or nothing (same as that in gc_allocator.h). * include/gc_cpp.h [!GC_NEW_ABORTS_ON_OOM] (GC_NEW_ABORTS_ON_OOM): Define if GC_NOEXCEPT is defined to nothing. * include/gc_cpp.h (new(size_t,void*), new[](size_t,void*), delete): Add GC_NOEXCEPT. --- gc_cpp.cc | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'gc_cpp.cc') diff --git a/gc_cpp.cc b/gc_cpp.cc index ad361b6e..b8c8ad28 100644 --- a/gc_cpp.cc +++ b/gc_cpp.cc @@ -37,7 +37,7 @@ built-in "new" and "delete". return obj; } - void operator delete(void* obj) GC_DECL_DELETE_THROW { + void operator delete(void* obj) GC_NOEXCEPT { GC_FREE(obj); } @@ -48,19 +48,19 @@ built-in "new" and "delete". return obj; } - void operator delete[](void* obj) GC_DECL_DELETE_THROW { + void operator delete[](void* obj) GC_NOEXCEPT { GC_FREE(obj); } # endif // GC_OPERATOR_NEW_ARRAY # if __cplusplus > 201103L // C++14 - void operator delete(void* obj, size_t size) GC_DECL_DELETE_THROW { + void operator delete(void* obj, size_t size) GC_NOEXCEPT { (void)size; // size is ignored GC_FREE(obj); } # if defined(GC_OPERATOR_NEW_ARRAY) && !defined(CPPCHECK) - void operator delete[](void* obj, size_t size) GC_DECL_DELETE_THROW { + void operator delete[](void* obj, size_t size) GC_NOEXCEPT { (void)size; GC_FREE(obj); } -- cgit v1.2.1