diff options
Diffstat (limited to 'memprof')
| -rw-r--r-- | memprof/memprof.cpp | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/memprof/memprof.cpp b/memprof/memprof.cpp index 92c20f441..8870aa7c6 100644 --- a/memprof/memprof.cpp +++ b/memprof/memprof.cpp @@ -291,22 +291,25 @@ void *memalign(std::size_t alignment, std::size_t size) { } } -// c++14 guarantees that it is enough to override these two operators. +// c++17 guarantees that it is enough to override these 4 operators void *operator new(std::size_t count) { return malloc_with_frame(count, get_backtrace()); } void operator delete(void *ptr) noexcept(true) { free(ptr); } +void *operator new(std::size_t count, std::align_val_t al) { + return memalign(static_cast<std::size_t>(al), count); +} +void operator delete(void *ptr, std::align_val_t al) noexcept { + free(ptr); +} + // because of gcc warning: the program should also define 'void operator delete(void*, std::size_t)' void operator delete(void *ptr, std::size_t) noexcept(true) { free(ptr); } -// c++17 -// void *operator new(std::size_t count, std::align_val_t al); -// void operator delete(void *ptr, std::align_val_t al); - #else bool is_memprof_on() { return false; |
