optimization bug gcc 4.1.2

Andrew Pinski pinskia@gmail.com
Fri Aug 29 06:31:00 GMT 2008


On Thu, Aug 28, 2008 at 11:27 PM, Fomin Eduard S. <fomin@bionet.nsc.ru> wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> inline double abs(double x)
> {
>        // remove sign bit
>        *reinterpret_cast<long long int*>(&x) &= 0x7FFFFFFFFFFFFFFFLL;
...
> This simple code works correct in DEBUG. But it works INCORRECT in
> release (-O2)

You are violating C/C++ aliasing rules, either use a memcpy, an union
or -fno-strict-aliasing.

Thanks,
Andrew Pinski



More information about the Gcc-bugs mailing list