diff -Nuar a/src/common/classes/alloc.cpp b/src/common/classes/alloc.cpp --- a/src/common/classes/alloc.cpp 2017-02-14 12:17:16.000000000 +0300 +++ b/src/common/classes/alloc.cpp 2018-01-30 20:53:56.618391768 +0300 @@ -2141,3 +2141,11 @@ { Firebird::MemoryPool::globalFree(mem); } +void operator delete(void* mem, size_t) throw() +{ + Firebird::MemoryPool::globalFree(mem); +} +void operator delete[](void* mem, size_t) throw() +{ + Firebird::MemoryPool::globalFree(mem); +} diff -Nuar a/src/common/classes/alloc.h b/src/common/classes/alloc.h --- a/src/common/classes/alloc.h 2017-02-14 12:17:16.000000000 +0300 +++ b/src/common/classes/alloc.h 2018-01-30 20:55:04.555386866 +0300 @@ -498,13 +498,6 @@ inline static MemoryPool* getDefaultMemoryPool() { return Firebird::MemoryPool::processMemoryPool; } -// Global versions of operators new and delete -void* operator new(size_t s) THROW_BAD_ALLOC; -void* operator new[](size_t s) THROW_BAD_ALLOC; - -void operator delete(void* mem) throw(); -void operator delete[](void* mem) throw(); - #ifdef DEBUG_GDS_ALLOC inline void* operator new(size_t s, Firebird::MemoryPool& pool, const char* file, int line) {