https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70096
Markus Trippelsdorf <trippels at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW Known to work| |4.9.3, 5.3.1 Keywords| |wrong-code Last reconfirmed| |2016-03-05 CC| |trippels at gcc dot gnu.org Ever confirmed|0 |1 Summary|[Invalid codegen] Read of |[6 Regression] [Invalid |uninitialized value in |codegen] Read of |ref-qualified pointer to |uninitialized value in |member function |ref-qualified pointer to | |member function Known to fail| |6.0 --- Comment #1 from Markus Trippelsdorf <trippels at gcc dot gnu.org> --- Only happens without optimization as seen in the bogus runtime error: markus@x4 /tmp % g++ -O0 -fsanitize=undefined hold.cpp markus@x4 /tmp % ./a.out hold.cpp:9:12: runtime error: member call on misaligned address 0x7ffe0d1d54da for type 'struct Holder', which requires 4 byte alignment 0x7ffe0d1d54da: note: pointer points here 00 00 fa ff ff ff ff ff ff ff 2a 00 00 00 ee 7f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ^ hold.cpp:2:36: runtime error: member access within misaligned address 0x7ffe0d1d54da for type 'struct Holder', which requires 4 byte alignment 0x7ffe0d1d54da: note: pointer points here 00 00 fa ff ff ff ff ff ff ff 2a 00 00 00 ee 7f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ^ markus@x4 /tmp % g++ -O1 -fsanitize=undefined hold.cpp markus@x4 /tmp % ./a.out markus@x4 /tmp %