------- Comment #3 from pinskia at gcc dot gnu dot org 2008-09-06 21:59 ------- Further reduced testcase: typedef long int Int; void FuncMakeConsequencesPres (long *objDefs1) { long a = (long)objDefs1; int c = a & 0x01; int b = 0; if (! ( 13 <= ( c ? 0 : (((int) objDefs1 & 0x02) ? 0 : *objDefs1 )) && b <= 0)) ErrorQuit (); }
--- CUT --- ifcombine causes the invalid IR to show up: D.1597_10 = objDefs1_1(D) & 3B; objDefs1 is a pointer. -- pinskia at gcc dot gnu dot org changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |rguenth at gcc dot gnu dot | |org Status|UNCONFIRMED |NEW Ever Confirmed|0 |1 Keywords| |ice-on-valid-code Last reconfirmed|0000-00-00 00:00:00 |2008-09-06 21:59:00 date| | Target Milestone|--- |4.4.0 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37387