diff options
| author | Maxime Coste <mawww@kakoune.org> | 2021-07-26 16:55:36 +1000 |
|---|---|---|
| committer | Maxime Coste <mawww@kakoune.org> | 2021-07-26 16:55:36 +1000 |
| commit | cbba348a835ef0e636d6e2015b4ef0d11bc476a4 (patch) | |
| tree | 9ffa7feca9fc6437a605e9144363356ba5efd8c0 | |
| parent | 15aa4fe1379c4cddb2e548bad0c1cd99f7fbf90e (diff) | |
always inline custom operator new/delete to avoid spurious warnings
GCC 11 warns incorrectly about mismatched new/delete because it auto
inlines one but not the other, force inline those function to fix that.
| -rw-r--r-- | src/memory.hh | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/src/memory.hh b/src/memory.hh index aa71776a..02df470e 100644 --- a/src/memory.hh +++ b/src/memory.hh @@ -150,29 +150,35 @@ template<MemoryDomain d> struct UseMemoryDomain { static constexpr MemoryDomain Domain = d; + + [[gnu::always_inline]] static void* operator new(size_t size) { on_alloc(Domain, size); return ::operator new(size); } + [[gnu::always_inline]] static void* operator new[](size_t size) { on_alloc(Domain, size); return ::operator new[](size); } + [[gnu::always_inline]] static void* operator new(size_t size, void* ptr) { return ::operator new(size, ptr); } + [[gnu::always_inline]] static void operator delete(void* ptr, size_t size) { on_dealloc(Domain, size); ::operator delete(ptr); } + [[gnu::always_inline]] static void operator delete[](void* ptr, size_t size) { on_dealloc(Domain, size); |
