私は4.1.2を使用しています。私のコードのどこを見るのが一番いいのか、誰か考えはありますか? 一般的な原因の経験はありますか? いくつかの醜いポインタ キャスト (つまり、d = (double) (* (float *) p)、ここで、p は int へのポインタ) がいくつかありますが、それらを削除する作業を行っていますが、まだ運がありません。
価値があるのは、 -O0 が正しい答えを出しているということです。助けてくれてありがとう。
2 に答える
7
ここに示すように、厳密なエイリアシングの問題を確認します: http://www.cellperformance.com/mike_acton/2006/06/understanding_strict_aliasing.html
あなたのコードが何をするのかを正確に知らなくても、「醜いポインターキャスト」について言及すると、エイリアシングの問題が疑われます。
問題を示すコードを提供していただけると、回答しやすくなります。
于 2009-07-02T02:48:25.313 に答える
3
皆さんに感謝します。-fno-strict-aliasing(複数の人が提案)が私の問題を解決しました。ご協力ありがとうございます。
教訓:常に警告フラグを付けてコンパイルします。
于 2009-07-02T03:01:47.017 に答える