Type-punning
Silvius Rus
rus@google.com
Tue Jun 26 23:18:00 GMT 2007
Herman Geza wrote:
> aliasing when GCC (I think) incorrectly treats types different, but
> they're the same. For example, I have:
>
> struct Point {
> float x, y, z;
> };
>
> struct Vector {
> float x, y, z;
>
> Point &asPoint() {
> return reinterpret_cast<Point&>(*this);
> }
> };
>
> Point and Vector have the same layout, but GCC treats them different when
> it does aliasing analysis. I have problems when I use Vector::asPoint.
>
I also think this case should not be flagged. I have seen similar usage
in network programming. Did it actually result in bad code or was it
just the warning that bothered you?
> :) Thanks for your responses.
>
You're welcome.
Silvius
More information about the Gcc
mailing list