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

Filed under:
|
|

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

Related posts about c

    Related posts about gcc