This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
RE: Incorrect bitfield aliasing with Tree SSA
> You know, some of the confusion in this thread may be because your previous
> example:
>
>
> " 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 Y isn't similarly marked, an assignment to *pf MIGHT
> affect bar.y unless I could somehow prove by value tracking that it can't. "
>
>
> discussed a field that clearly /was/ addressable. It's a lot more obvious
> that something is non-addressable when you use a bitfield width specifier on
> it.... did you originally intend to do that for foo.x as well?
No, I was trying to write a C example of a concept in the tree that has no
equivalent C syntax. I was saying "you have the tree for the above C, but
also have the DECL_NONADDRESSABLE_P flag on x". Eric gave the equivalent
Ada, but since most people don't know Ada, I used C.
Yes, bitfield are the same case, but people aren't convinced of that yet,
so I didn't want to use that in this example.