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 %

Reply via email to