浮動小数点例外の処理

デフォルトでは、ゼロによる除法、無限大による除法、オーバーフロー、 アンダーフローなどの無効な演算は、実行時には無視されます。ただし、-qflttrap オプションを使用するか、C またはオペレーティング・システムの関数を呼び出すことで、これらのタイプの例外を検出できます。

さらに、適切なサポート・コードをプログラムに追加すると、例外が発生してもプログラムの実行を続けて、 例外の原因となった演算の結果を修正することができます。

しかし、定数を含む浮動小数点計算は、コンパイル時に折り畳みがされるのが普通であるため、実行時に発生する可能性のある例外は生じません。-qflttrap オプションが、実行時の浮動小数点例外をすべてトラップできるようにするには、-qfloat=nofold オプションを使用して、 コンパイル時の折り畳みをすべて抑止することを検討してください。

AIX® オペレーティング・システムの機能を使用して浮動小数点例外でのハードウェア・トラッピングを有効にする場合は、-qfloat=fenv オプションを使用して、例外が発生する可能性があることをコンパイラーに通知します。