This is the mail archive of the gcc@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: Wrong RTL instruction deleted


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.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]