奇妙な最適化のみのバグが発生しているため、どのフラグが原因であるかを特定しようとしています。エラー (不正な計算) は で発生しますが-O1
、 では発生しません-O0
。したがって、私はそれをすべて使用できると考えまし-f flags
た-O1 includes to narrow down the culprit
。ただし、(このリストhttp://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.htmlを使用して) 試してみると、再び正常に動作します!
誰かがこれを説明したり、何を探すべきかについて他の提案をしたりできますか? でコードを実行しましたが、valgrind
エラーは報告されません。
編集
計算は で正しく、-O0
で正しくありませんが-O1
、 で再び正しいことがわかりました-O1 -ffloat-store
。何を探すべきかについての考えは、それなしでは機能しません-ffloat-store
か?
EDIT2
通常のリリース フラグでコンパイルすると、計算エラーが発生します。ただし、次のいずれかを追加すると:
-ffloat-store
また
-mpc64
フラグのリストに追加すると、エラーはなくなります。
このフラグが違いを生んでいる行を追跡する方法を誰かが提案できますか?