Incorrect bitfield aliasing with Tree SSA

Daniel Berlin dberlin@dberlin.org
Sun Jun 17 03:36:00 GMT 2007


On 6/16/07, Richard Kenner <kenner@vlsi1.ultra.nyu.edu> wrote:
> > You guys have come up with a very weird idea of what
> > non-addressability means.  These fields are all addressable, they
> > are just not directly addressable.
>
> Terminology is always tricky here.  "addressable" in this context means
> that no pointer can point directly to the field.

Which is, well, at least in aliasing and pointer tracking, a meaningless thing.

>
> So if I have
>         struct foo {int x; float y; } bar;
>         int *pi;
>         float *pf;
>
> and mark X as "nonaddressable", I know that an assigment to *pi can't
> affect bar.x.

But if you add

struct foo *foop = &bar.

foop->x = 5.

It can, even though we *claim* X is nonaddressable.

If you told me this is what you meant by "nonaddressable", i'd
probably call you crazy.

It is most certainly addressable, because you can form the address of it.



More information about the Gcc mailing list