Sun Studio 12 Update 1: C++ ユーザーズガイド

A.2.29.1 値

t には次の値のいずれかを指定できます。

表 A–14 -ftrap の値

値 

意味  

[no%]division

ゼロによる除算をトラップします [しません]。 

[no%]inexact

正確でない結果をトラップします [しません]。 

[no%]invalid

無効な操作をトラップします [しません]。 

[no%]overflow

オーバーフローをトラップします [しません]。 

[no%]underflow

アンダーフローをトラップします [しません]。 

%all

前述のすべてをトラップします。 

%none

前述のどれもトラップしません。 

common

無効、ゼロ除算、オーバーフローをトラップします。 

[no%] 形式のオプションは、下の例に示すように、%allcommonフラグの意味を変更するときだけ使用します。[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 を使用してください。

関連項目

ieee_handler(3M) および fex_set_handling(3M) のマニュアルページ