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

Robert Schiele rschiele@uni-mannheim.de
Mon Mar 17 15:56:00 GMT 2003


The following reply was made to PR optimization/8300; it has been noted by GNATS.

From: Robert Schiele <rschiele@uni-mannheim.de>
To: Falk Hueffner <falk.hueffner@student.uni-tuebingen.de>
Cc: Richard Henderson <rth@redhat.com>, gcc-bugs@gcc.gnu.org,
   tneumann@pi3.informatik.uni-mannheim.de, gcc-gnats@gcc.gnu.org
Subject: Re: optimization/8300: [3.2/3.3/3.4 regression] [sparc] ICE in gen_reg_rtx, at emit-rtl.c:662
Date: Mon, 17 Mar 2003 16:48:25 +0100

 --PEIAKu/WMn1b1Hv9
 Content-Type: text/plain; charset=us-ascii
 Content-Disposition: inline
 Content-Transfer-Encoding: quoted-printable
 
 On Mon, Mar 17, 2003 at 04:24:34PM +0100, Falk Hueffner wrote:
 > Robert Schiele <rschiele@uni-mannheim.de> writes:
 >=20
 > > How about this:
 > >=20
 > > void a() {
 > >     double b;
 > >     int c[2];
 > >     *((int*)&b) && (c[1] =3D 0);
 > > }
 > >=20
 > > Exactly same problem.  And this time there is no pointer outside well
 > > defined data area.  You agree that this sample is legal code?
 >=20
 > 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 in
 	ISO/IEC 9899:1999.  There is no bitwise shift operator in my
 	expression.
 
 lvalue?  b is not used as an lvalue here, is it?
 
 Is it generally illegal to do a cast of this type?
 
 Is it just illegal, because double has 8 bytes, where int has 4 on
 this platform?  In that case change double to float which has also 4
 byte. =3D=3D> Same problem.
 
 I can't find such a limitation in 6.5.4 Cast operators.  Is there such
 a limit somewhere?
 
 Additional note: The code compiles fine when the declaration of b has
 a volatile qualifier.
 
 Robert
 
 --=20
 Robert Schiele			Tel.: +49-621-181-2517
 Dipl.-Wirtsch.informatiker	mailto:rschiele@uni-mannheim.de
 
 --PEIAKu/WMn1b1Hv9
 Content-Type: application/pgp-signature
 Content-Disposition: inline
 
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1.0.7 (GNU/Linux)
 
 iQEVAwUBPnXuScQAnns5HcHpAQEOlggAz3PNNvUN+upats7yokEexgC30Zbg26bi
 T/M1xyHh7PkJPVp/m5qfiq6nMeWKlnW+c9croP5cNWcogALL4cL0Rqcyzkm8M8rs
 rfAa07zh0+GNEDrtFOjefJgq/KkfX368nFeOb6aEeVm2WScm3C0q2O9B2ZAlJx5k
 K+/FyVabaFGwDJ460LxBIgJVE4YVIPLRNJWjYE+0nGgopUoQi/z1osU+i7EJ6Z1c
 RF/a1TyVt6FoUgzE3xdzvTLPWsQSrBAedWjVSHVKJoRvpvzhX5ELrDBdrnl3KquY
 ytxxHR30ESrFqW9sf+DXOE/4JEg8vlAswa5RB0ln0ScaidGEG3bo2A==
 =4Vju
 -----END PGP SIGNATURE-----
 
 --PEIAKu/WMn1b1Hv9--
 



More information about the Gcc-prs mailing list