optimization/8300: [3.2/3.3/3.4 regression] [sparc] ICE in gen_reg_rtx, at emit-rtl.c:662

Falk Hueffner falk.hueffner@student.uni-tuebingen.de
Mon Mar 17 18:08:00 GMT 2003


Robert Schiele <rschiele@uni-mannheim.de> writes:

> On Mon, Mar 17, 2003 at 04:24:34PM +0100, Falk Hueffner wrote:
> > Robert Schiele <rschiele@uni-mannheim.de> writes:
> > 
> > > void a() {
> > >     double b;
> > >     int c[2];
> > >     *((int*)&b) && (c[1] = 0);
> > > }
> > > 
> > > Exactly same problem.  And this time there is no pointer outside well
> > > defined data area.  You agree that this sample is legal code?
> > 
> > No, you're violating the rule in 6.5.7 by accessing an object of type
> > double with an lvalue of type int.
> 
> 6.5.7?  This one is about bitwise shift operators

Sorry, I meant 6.5, paragraph 7.

> lvalue?  b is not used as an lvalue here, is it?

No, but you're accessing its value.
 
> Is it generally illegal to do a cast of this type?

No, only accessing the resulting object.

-- 
	Falk



More information about the Gcc-bugs mailing list