From 5f18ebc705ec98e883aa63cb537e36e6a08b7e34 Mon Sep 17 00:00:00 2001 From: Alon Bar-Lev Date: Tue, 21 Mar 2017 12:23:17 +0200 Subject: [PATCH] build: fix C++11 throwing distructors For >=C++11, explicitly mark throwing destructors `noexcept(false)` Thanks: Peter-Levine --- Doxyfile.in | 2 +- src/botantools/botan/alloc_mmap/mmap_mem.cpp | 2 +- src/botantools/botan/botan/allocate.h | 8 +++++++- src/botantools/botan/botan/mem_pool.h | 2 +- src/botantools/botan/mem_pool.cpp | 2 +- 5 files changed, 11 insertions(+), 5 deletions(-) diff --git a/Doxyfile.in b/Doxyfile.in index 59d9afe..844c234 100644 --- a/Doxyfile.in +++ b/Doxyfile.in @@ -1070,7 +1070,7 @@ PREDEFINED = DOXYGEN_SHOULD_SKIP_THIS \ # The macro definition that is found in the sources will be used. # Use the PREDEFINED tag if you want to use a different macro definition. -EXPAND_AS_DEFINED = QCA_EXPORT +EXPAND_AS_DEFINED = QCA_EXPORT QCA_NOEXCEPT # If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then # doxygen's preprocessor will remove all function-like macros that are alone diff --git a/src/botantools/botan/alloc_mmap/mmap_mem.cpp b/src/botantools/botan/alloc_mmap/mmap_mem.cpp index 362b688..54f0d23 100644 --- a/src/botantools/botan/alloc_mmap/mmap_mem.cpp +++ b/src/botantools/botan/alloc_mmap/mmap_mem.cpp @@ -107,7 +107,7 @@ void* MemoryMapping_Allocator::alloc_block(u32bit n) umask(old_umask); } - ~TemporaryFile() + ~TemporaryFile() QCA_NOEXCEPT(false) { delete[] filepath; if(fd != -1 && close(fd) == -1) diff --git a/src/botantools/botan/botan/allocate.h b/src/botantools/botan/botan/allocate.h index 0ac351e..52bc397 100644 --- a/src/botantools/botan/botan/allocate.h +++ b/src/botantools/botan/botan/allocate.h @@ -40,6 +40,12 @@ namespace QCA { // WRAPNS_LINE #include namespace QCA { // WRAPNS_LINE +#if __cplusplus >= 201103L +#define QCA_NOEXCEPT(x) noexcept(x) +#else +#define QCA_NOEXCEPT(x) +#endif + namespace Botan { /************************************************* @@ -58,7 +64,7 @@ class Allocator virtual void init() {} virtual void destroy() {} - virtual ~Allocator() {} + virtual ~Allocator() QCA_NOEXCEPT(false) {} }; /************************************************* diff --git a/src/botantools/botan/botan/mem_pool.h b/src/botantools/botan/botan/mem_pool.h index 32834b8..1cb903e 100644 --- a/src/botantools/botan/botan/mem_pool.h +++ b/src/botantools/botan/botan/mem_pool.h @@ -63,7 +63,7 @@ class Pooling_Allocator : public Allocator void destroy(); Pooling_Allocator(u32bit, bool); - ~Pooling_Allocator(); + ~Pooling_Allocator() QCA_NOEXCEPT(false); private: void get_more_core(u32bit); byte* allocate_blocks(u32bit); diff --git a/src/botantools/botan/mem_pool.cpp b/src/botantools/botan/mem_pool.cpp index 00280ec..baa47aa 100644 --- a/src/botantools/botan/mem_pool.cpp +++ b/src/botantools/botan/mem_pool.cpp @@ -171,7 +171,7 @@ Pooling_Allocator::Pooling_Allocator(u32bit p_size, bool) : /************************************************* * Pooling_Allocator Destructor * *************************************************/ -Pooling_Allocator::~Pooling_Allocator() +Pooling_Allocator::~Pooling_Allocator() QCA_NOEXCEPT(false) { delete mutex; if(blocks.size()) -- 2.10.2