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)