https://bugs.kde.org/show_bug.cgi?id=388787
--- Comment #2 from Paul Floyd <pa...@free.fr> --- Testcase to reproduce this behaviour: # Makefile .PHONY: clean # GCC and Valgrind built from SVN/git head CXX=${HOME}/tools/gcc/bin/g++ VG=${HOME}/tools/valgrind/bin/valgrind test32: test.cpp ${CXX} -o $@ $< -m32 -Wl,-rpath,${HOME}/tools/gcc/lib -faligned-new -std=c++17 test64: test.cpp ${CXX} -o $@ $< -m64 -Wl,-rpath,${HOME}/tools/gcc/lib64 -faligned-new -std=c++17 vg32: test32 ${VG} --trace-malloc=yes --show-mismatched-frees=yes ./$< vg64: test64 ${VG} --trace-malloc=yes --show-mismatched-frees=yes ./$< clean: rm -f test32 test64 test32_clang test64_clang Source code: #include <cstdlib> #include <new> class alignas(64) MyClass { int i; }; int main() { MyClass* myClass = new MyClass(); delete myClass; MyClass* myClassNt = new (std::nothrow) MyClass(); delete myClassNt; MyClass* myClass5 = new MyClass[5]; delete [] myClass5; MyClass* myClass5Nt = new (std::nothrow) MyClass[5]; delete [] myClass5Nt; } There are no mismatches but the output is --4614-- memalign(al 64, size 64) = 0x4425AC0 --4614-- free(0x4425AC0) --4614-- memalign(al 64, size 64) = 0x4425B80 --4614-- free(0x4425B80) --4614-- memalign(al 64, size 320) = 0x4425C80 --4614-- free(0x4425C80) --4614-- memalign(al 64, size 320) = 0x4425E40 --4614-- free(0x4425E40) Since Valgrind does not pick up the aligned new/deletes but it does pick up the underlying memaligns and frees. Here are the mangled function signatures Linux 32bit U _ZdaPvSt11align_val_t@@CXXABI_1.3.11 U _ZdlPvjSt11align_val_t@@CXXABI_1.3.11 U _ZnajSt11align_val_t@@CXXABI_1.3.11 U _ZnajSt11align_val_tRKSt9nothrow_t@@CXXABI_1.3.11 U _ZnwjSt11align_val_t@@CXXABI_1.3.11 U _ZnwjSt11align_val_tRKSt9nothrow_t@@CXXABI_1.3.11 Unmangled U operator delete[](void*, std::align_val_t)@@CXXABI_1.3.11 U operator delete(void*, unsigned int, std::align_val_t)@@CXXABI_1.3.11 U operator new[](unsigned int, std::align_val_t)@@CXXABI_1.3.11 U operator new[](unsigned int, std::align_val_t, std::nothrow_t const&)@@CXXABI_1.3.11 U operator new(unsigned int, std::align_val_t)@@CXXABI_1.3.11 U operator new(unsigned int, std::align_val_t, std::nothrow_t const&)@@CXXABI_1.3.11 Linux 64bit U _ZdaPvSt11align_val_t@@CXXABI_1.3.11 U _ZdlPvmSt11align_val_t@@CXXABI_1.3.11 U _ZnamSt11align_val_t@@CXXABI_1.3.11 U _ZnamSt11align_val_tRKSt9nothrow_t@@CXXABI_1.3.11 U _ZnwmSt11align_val_t@@CXXABI_1.3.11 U _ZnwmSt11align_val_tRKSt9nothrow_t@@CXXABI_1.3.11 Unmangled U operator delete[](void*, std::align_val_t)@@CXXABI_1.3.11 U operator delete(void*, unsigned long, std::align_val_t)@@CXXABI_1.3.11 U operator new[](unsigned long, std::align_val_t)@@CXXABI_1.3.11 U operator new[](unsigned long, std::align_val_t, std::nothrow_t const&)@@CXXABI_1.3.11 U operator new(unsigned long, std::align_val_t)@@CXXABI_1.3.11 U operator new(unsigned long, std::align_val_t, std::nothrow_t const&)@@CXXABI_1.3.11 -- You are receiving this mail because: You are watching all bug changes.