------- 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