RFC: RPM build flags

Kevin Kofler kevin.kofler at chello.at
Tue Feb 17 13:04:55 UTC 2009


Richard W.M. Jones wrote:
> I think I agree with you.  I spent a long time looking at the strict
> aliasing warnings generated by GCC for rpcgen-generated code.  I
> couldn't find a good explanation anywhere for what the problems are
> with the code and what sort of bugs the compiler could introduce.  For
> example, making apparently simple and semantics-preserving changes to
> the code made the warning go away, but did that make the bug go away?
> (serious question -- I've no idea).

In short, you cannot access a variable of type A through a pointer of type
B. For example, if x is of type double, it is invalid to use *(int*)&x to
get at the double's bits.

Some aliasing warnings are also caused by sloppy use of types, e.g. using
int instead of long or size_t. (E.g. using int * when the data pointed to
is actually of type size_t.) That sort of abuse can also cause breakage on
64-bit platforms, so in those cases the code needs to be fixed to use the
correct type anyway.

> Does such a reference exist to help us understand the problem?

Plenty thereof, see e.g.:
http://en.wikipedia.org/wiki/Aliasing_(computing)
http://www.cellperformance.com/mike_acton/2006/06/understanding_strict_aliasing.html
Searching for "strict aliasing" finds a lot more.

        Kevin Kofler




More information about the fedora-devel-list mailing list