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