https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65209
Richard Biener <rguenth at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW Last reconfirmed| |2015-02-25 Known to work| |4.9.2 Target Milestone|--- |5.0 Summary|[5.0 regression] Broken |[5 Regression] Broken code |code with global static |with global static |variables, invalid pointer |variables, invalid pointer |when freeing global |when freeing global |variables |variables Ever confirmed|0 |1 --- Comment #1 from Richard Biener <rguenth at gcc dot gnu.org> --- Confirmed. Valgrind says ==23580== Invalid free() / delete / delete[] / realloc() ==23580== at 0x4C28FAC: operator delete(void*) (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so) ==23580== by 0x4009D4: FooData::~FooData() (foo.cpp:5) ==23580== by 0x400A13: Foo::~Foo() (foo.cpp:8) ==23580== by 0x400A4B: FooSingleton::~FooSingleton() (foo.cpp:15) ==23580== by 0x400AA2: (anonymous namespace)::Q_QGS_s_self::innerFunction()::Holder::~Holder() (foo.cpp:33) ==23580== by 0x5704058: __run_exit_handlers (exit.c:82) ==23580== by 0x57040A4: exit (exit.c:104) ==23580== by 0x56EDBEB: (below main) (libc-start.c:303) ==23580== Address 0x5a80001 is 24,513 bytes inside a block of size 72,704 alloc'd ==23580== at 0x4C277AB: malloc (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so) ==23580== by 0x4EC31AF: ??? (in /usr/lib64/libstdc++.so.6.0.21) ==23580== by 0x400E859: call_init.part.0 (dl-init.c:84) ==23580== by 0x400E942: _dl_init (dl-init.c:36) ==23580== by 0x40011C9: ??? (in /lib64/ld-2.18.so)