SIGFPE ハンドラを組み込まずに、起動時に有効にする IEEE トラップモードの設定のみ行います。トラップの設定と SIGFPE ハンドラの組み込みを同時に行うには、ieee_handler(3M) か fex_set_handling(3M) を使用します。複数の値を指定すると、それらの値は左から右に処理されます。
t には次の値のいずれかを指定できます。
表 B–10 -ftrap フラグ| フラグ | 意味 | 
|---|---|
| [no%]division | ゼロによる除算をトラップします [しません]。 | 
| [no%]inexact | 正確でない結果をトラップします [しません]。 | 
| [no%]invalid | 無効な操作をトラップします [しません]。 | 
| [no%]overflow | オーバーフローをトラップします [しません]。 | 
| [no%]underflow | アンダーフローをトラップします [しません]。 | 
| %all | 前述のすべてをトラップします。 | 
| %none | 前述のどれもトラップしません。 | 
| common | 無効、ゼロ除算、オーバーフローをトラップします。 | 
[no%] 形式のオプションは、下の例に示すように、%all や commonフラグの意味を変更するときだけ使用します。[no%] 形式のオプション自体は、特定のトラップを明示的に無効にするものではありません。
-ftrap を指定しない場合、コンパイラは -ftrap=%none とみなします。
たとえば、-ftrap=%all,no%inexact は、inexact 以外のすべてのトラップを設定することを意味します。
1 つのルーチンを -ftrap=t オプションでコンパイルした場合は、そのプログラムのルーチンすべてを、-ftrap=t オプションを使用してコンパイルしてください。途中から異なるオプションを使用すると、予想に反した結果が生じることがあります。
-ftrap=inexact のトラップは慎重に使用してください。-ftrap=inexact では、浮動小数点の値が正確でないとトラップが発生します。たとえば、次の文ではこの条件が発生します。
| x = 1.0 / 3.0; | 
このオプションは、メインプログラムをコンパイルするときにだけ有効です。このオプションを使用する際には注意してください。IEEE トラップを有効にするには -ftrap=common を使用してください。