GCCについて part3
■ このスレッドは過去ログ倉庫に格納されています
0703694
NGNG-ffast-mathはなんとなく恐くて敬遠してましたがこの際理解しようと思います.
-ffast-mathで設定されるオプションのうち,いくつかが良く分かりません.
オプションによって結果が変わる短い例を示してもらえないでしょうか?
以下はだいたい分かります.
-fno-math-errno: errnoが設定されなくなる.
(e.g.)
$ cat test.cpp
#include <iostream>
#include <cmath>
#include <errno.h>
using namespace std;
int main () {
double d0 (-1);
cout << sqrt (d0) << " " << flush;
perror (NULL);
return 0;
}
$ g++ -O test.cpp; ./a.out
nan Numerical argument out of domain
$ g++ -O -ffast-math test.cpp; ./a.out
nan Success
-funsafe-math-optimizations: 計算精度がユーザからはコントロール不能な最適化が行なわれる.
以下がいまいちよく分かりません.
-fno-trapping-math
-ffinite-math-only
-fno-signaling-nans
(因みに私の環境はg++ 3.3.3 on Linux 2.4.26)
■ このスレッドは過去ログ倉庫に格納されています