Wrong RTL instruction deleted

Richard Guenther richard.guenther@gmail.com
Mon Dec 27 13:00:00 GMT 2004


On Mon, 27 Dec 2004 06:39:41 -0500, Robert Dewar <dewar@adacore.com> wrote:
> Richard Guenther wrote:
> 
> > Isn't this invalid code wrt aliasing?  Wouldn't you need to do
> 
> I don't see the aliasing issue here. No pointers are involved.

Well, but t08.gimple contains

float foo() ()
{
  float D.1564;
  float * MASK.0;

  {
    unsigned int MASK;

    MASK = 080000000;
    MASK.0 = (float *) &MASK;
    D.1564 = *MASK.0;
    return D.1564;
  }
}

here we _have_ pointers.  If the above were the actual testcase it would be
invalid, no?  Though the code with the union doesn't look different here.

Also, with -fno-strict-aliasing the "bug" doesn't occour.

Richard.



More information about the Gcc mailing list