optimization bug gcc 4.1.2
Fomin Eduard S.
fomin@bionet.nsc.ru
Fri Aug 29 06:29:00 GMT 2008
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
inline double abs(double x)
{
// remove sign bit
*reinterpret_cast<long long int*>(&x) &= 0x7FFFFFFFFFFFFFFFLL;
return x;
}
int main(int argc, char *argv[])
{
std::cout << "abs = " << abs(-2.1) << std::endl;
}
This simple code works correct in DEBUG. But it works INCORRECT in
release (-O2)
gcc 4.1.2/4.1.1
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.7 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org
iD8DBQFIt5bdzcPJMsK6QP8RAgvfAJ94tuXYQIGzBfktUi3dkQcXSsigzQCZAbAF
fxSsDpV4w7VoCv6Y06wSscs=
=1PBk
-----END PGP SIGNATURE-----
More information about the Gcc-bugs
mailing list