Incorrect bitfield aliasing with Tree SSA

Richard Kenner kenner@vlsi1.ultra.nyu.edu
Sun Jun 17 03:26:00 GMT 2007


> 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.

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.



More information about the Gcc mailing list