This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.
| Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
|---|---|---|
| Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
| Other format: | [Raw text] | |
On Sun, Mar 16, 2003 at 11:26:37PM -0000, rth at gcc dot gnu dot 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 at uni-mannheim dot de
Attachment:
pgp00000.pgp
Description: PGP signature
| Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
|---|---|---|
| Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |