This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
Re: optimization/8300: [3.2/3.3/3.4 regression] [sparc] ICE in gen_reg_rtx, at emit-rtl.c:662
Robert Schiele <rschiele at uni-mannheim dot de> writes:
> On Mon, Mar 17, 2003 at 04:24:34PM +0100, Falk Hueffner wrote:
> > Robert Schiele <rschiele at uni-mannheim dot 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