gcc, strict-aliasing, and horror stories
Posted
by Joseph Quinsey
on Stack Overflow
See other posts from Stack Overflow
or by Joseph Quinsey
Published on 2010-06-02T14:27:00Z
Indexed on
2010/06/02
16:14 UTC
Read the original article
Hit count: 297
In http://stackoverflow.com/questions/2906365/gcc-strict-aliasing-and-casting-through-a-union I asked whether anyone had encountered problems with union punning through pointers. So far, the answer seems to be No.
This question is broader: do you have any horror stories about gcc and strict-aliasing?
Background: Quoting from AndreyT's answer in http://stackoverflow.com/questions/2771023/c99-strict-aliasing-rules-in-c-gcc/2771041#2771041:
"Strict aliasing rules are rooted in parts of the standard that were present in C and C++ since the beginning of [standardized] times. The clause that prohibits accessing object of one type through a lvalue of another type is present in C89/90 (6.3) as well as in C++98 (3.10/15). ... It is just that not all compilers wanted (or dared) to enforce it or rely on it."
Well, gcc is now daring to do so, with its -fstrict-aliasing
switch. And this has caused some problems. See, for example, the excellent article http://davmac.wordpress.com/2009/10/ about a Mysql bug, and the equally excellent discussion in http://cellperformance.beyond3d.com/articles/2006/06/understanding-strict-aliasing.html.
Some other less-relevant links:
http://stackoverflow.com/questions/1225741/performance-impact-of-fno-strict-aliasing
http://stackoverflow.com/questions/754929/strict-aliasing
http://stackoverflow.com/questions/262379/when-is-char-safe-for-strict-pointer-aliasing
http://stackoverflow.com/questions/725138/how-to-detect-strict-aliasing-at-compile-time
So to repeat, do you have a horror story of your own? Problems not indicated by -Wstrict-aliasing
would, of course, be preferred. And other C compilers are also welcome.
© Stack Overflow or respective owner