[Bug target/55108] bad compile-time evaluation of members of initialized union
rearnsha at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Tue Oct 30 14:13:00 GMT 2012
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55108
Richard Earnshaw <rearnsha at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |NEW
Last reconfirmed| |2012-10-30
Ever Confirmed|0 |1
Known to fail| |4.6.3, 4.7.0
--- Comment #2 from Richard Earnshaw <rearnsha at gcc dot gnu.org> 2012-10-30 14:13:15 UTC ---
Confirmed. It seems the compiler is incorrectly eliminating some zero-extend
operations. We have
Ra:SI = Rx:SI >> 8
Rb:QI = subreg:QI (Ra:SI 0)
Rc:SI = subreg:SI (Rb:QI 0)
Rd:SI = Rc:SI & 255
cse1 pass then decides incorrectly (and presumably because of the paradoxical
subreg) that Rd == Rc and discards the mask operation.
Also seen in 4.7, haven't been able to test trunk.
More information about the Gcc-bugs
mailing list