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]

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


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]