https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80578
Martin Liška <marxin at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Priority|P3 |P5 Status|UNCONFIRMED |NEW Last reconfirmed| |2017-05-02 Ever confirmed|0 |1 --- Comment #1 from Martin Liška <marxin at gcc dot gnu.org> --- Confirmed, it's caused by fact that the vptr ubsan error calls demangler to display type name. That's the place where the memory is allocated and not properly released. If you take a look at libsanitizer/sanitizer_common/sanitizer_symbolizer_posix_libcdep.cc, there's comment that confirms it's a known issue: const char *DemangleCXXABI(const char *name) { // FIXME: __cxa_demangle aggressively insists on allocating memory. // There's not much we can do about that, short of providing our // own demangler (libc++abi's implementation could be adapted so that // it does not allocate). For now, we just call it anyway, and we leak // the returned value. if (__cxxabiv1::__cxa_demangle) if (const char *demangled_name = __cxxabiv1::__cxa_demangle(name, 0, 0, 0)) return demangled_name; return name; } I'm assigning that low priority.