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: Incorrect bitfield aliasing with Tree SSA


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.


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