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 09:25:00 GMT 2003
On Sun, Mar 16, 2003 at 11:26:37PM -0000, rth@gcc.gnu.org wrote:
> Synopsis: [3.2/3.3/3.4 regression] [sparc] ICE in gen_reg_rtx, at emit-rtl.c:662
>
> State-Changed-From-To: analyzed->open
> State-Changed-By: rth
> State-Changed-When: Sun Mar 16 23:26:37 2003
> State-Changed-Why:
> The code is illegal because *(&c+1) is not an object.
Well, I can show that this is not the problem:
Rewriting the code as
void a() {
double b;
int c;
c = *((int*)&b) && (*(&c + 1) = 0);
}
shows the same problem and as c is explicitly defined here _before_,
*(&c + 1) is also well defined.
And then we have two bugs here:
1. My rewritten example is legal code with no doubt and produces an
ICE whit optimization.
2. The original sample is accepted is accepted without optimization,
although you say, it is illegal.
Robert
--
Robert Schiele Tel.: +49-621-181-2517
Dipl.-Wirtsch.informatiker mailto:rschiele@uni-mannheim.de
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 481 bytes
Desc: not available
URL: <http://gcc.gnu.org/pipermail/gcc-bugs/attachments/20030317/8964c274/attachment.sig>
More information about the Gcc-bugs
mailing list