strict aliasing (again)
Mojmir Svoboda
mojmir.svoboda@illusionsoftworks.com
Tue Dec 2 16:39:00 GMT 2008
* Andrew Haley <aph@redhat.com> [2008-12-02 13:32:46 +0000]:
> It's undefined behaviour: if you make a pointer by taking the address of an
> object you can dereference that pointer. If it's a pointer to an array
> you can also increment it up to one past the end of that array. You
> can only dereference that pointer if it points to the object you
> took the address of.
acknowledged.
> In this case it'll probably work as long as there is no padding between
> x, y, and z.
> But it's not well-defined code.
and that is exactly why i want to fix it. as i pointerd out to John: like
this i have to go to forums and ask whether this is safe on gcc and then
go to msvc and ask what about their compiler.
for example i asked whether the "union_cast" works on the msvc and still
the responses were quite foggy, so i don't know really even now.
i find this programming style quite uncomfortable...
> OK, I see. I guess you'll have to proceed slowly, but IMO there is no
> point replacing one case of undefined behaviour with another. If you're
> going to fix it, you might as well fix it right.
okay, i am moving to "do you know a good basic linear algebra" mailing
list :)
many thanks for your time, Andrew!
mojmir
More information about the Gcc-help
mailing list