------- Comment #5 from pinskia at gcc dot gnu dot org 2007-12-08 20:07 ------- <unnamed-unsigned:24> D.2020;
<bb 2>: sv.f1 = 0; sv.f2 = 16777215; fn (16777215, 16777215); D.2020 = sv.f2 + 1; sv.f2 = D.2020; fn ((int) D.2020, 0); So this is a middle-end issue of not doing an AND and then a sign extend. -- pinskia at gcc dot gnu dot org changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |pinskia at gcc dot gnu dot | |org Status|UNCONFIRMED |NEW Component|c++ |middle-end Ever Confirmed|0 |1 Keywords| |wrong-code Last reconfirmed|0000-00-00 00:00:00 |2007-12-08 20:07:32 date| | Summary|Reference to bitfield gets |[4.2/4.3 Regression] |wrong value when optimizing |Reference to bitfield gets | |wrong value when optimizing Target Milestone|--- |4.2.3 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33887