------- Comment #8 from pinskia at gmail dot com 2008-09-16 13:29 ------- Subject: Re: [4.4 Regression] ICE using --combine -O2
Sent from my iPhone On Sep 16, 2008, at 6:20 AM, "rguenth at gcc dot gnu dot org" <[EMAIL PROTECTED] > wrote: > > > ------- Comment #7 from rguenth at gcc dot gnu dot org 2008-09-16 > 13:20 ------- > ./cc1 -quiet -O2 t1.i t2.i > t2.i: In function 'Node_print': > t2.i:2: error: non-trivial conversion at assignment > struct _IO_FILE * > struct _IO_FILE * > # LOADS: { stderr } > stderr.0_3 = stderr; > > t2.i:2: error: non-trivial conversion at assignment > struct _IO_FILE * > struct _IO_FILE * > # LOADS: { stderr } > stderr.0_4 = stderr; > No those two types should compatible. If they are not then there is a bug in the middle-end. I think this is why there was the Lang hook in the first place. > t2.i:2: internal compiler error: verify_stmts failed > Please submit a full bug report, > with preprocessed source if appropriate. > See <http://gcc.gnu.org/bugs.html> for instructions. > > > So we have wrong GIMPLE here. GIGO. > > Value numbering stderr.0_3 stmt = stderr.0_3 = stderr; > Setting value number of stderr.0_3 to stderr.0_3 > ... > Value numbering stderr.0_4 stmt = stderr.0_4 = stderr; > Inserting name stderr.0_17 for expression (struct _IO_FILE *) stderr. > 0_3 > Setting value number of stderr.0_4 to stderr.0_17 > > > -- > > rguenth at gcc dot gnu dot org changed: > > What |Removed |Added > --- > --- > ---------------------------------------------------------------------- > CC| |rguenth at gcc dot > gnu dot > | |org > > > http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37526 > -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37526