flttrap

C に適用 C++ に適用

目的

追加の命令を生成して、実行時の浮動小数点例外を検出およびトラップします。

構文


構文図

ここで、サブオプションでは以下が行われます。


ENable メインプログラムの開始時点で指定された例外を使用可能にします。 (以下で説明する) nanq を除き、ソース・コードを変更せずに、下記の例外トラッピング・オプションをオンにする場合は、このサブオプションが必要です。
OVerflow 浮動小数点のオーバーフローを検出およびトラップするためのコードを生成します。
UNDerflow 浮動小数点のアンダーフローを検出およびトラップするためのコードを生成します。
ZEROdivide ゼロによる浮動小数点除法を検出およびトラップするためのコードを生成します。
INValid 浮動小数点無効演算例外を検出およびトラップするためのコードを生成します。
INEXact 浮動小数点精度低下例外を検出およびトラップするためのコードを生成します。
IMPrecise 指定された例外の不正確な検出のためのコードを生成します。例外が引き起こされた場合は、例外が検出されますが、例外の正確な位置は判別されません。
nanq 浮動小数点演算で処理または生成される NaNQ (Not a Number Quiet) 例外を検出およびトラップするためのコードを生成します。 nanq および nonanq 設定は、 -qnoflttrap-qflttrap、または -qflttrap=enable の影響を受けません。

#pragma optionsも参照してください。

このオプションは、リンク時に認識されます。 -qnoflttrap は、これらの追加の命令を生成する必要がないことを指定します。

サブオプションを指定せずに -qflttrap オプションを指定することは、 -qflttrap=overflow:underflow:zerodivide:invalid:inexact を指定することと同等です。例外が自動的に使用可能にされることはなく、全浮動小数点演算が検査されて、正確な例外の位置に関する情報が提供されます。

#pragma options とともに指定する場合、 -qnoflttrap オプションは、指定する最初のオプションでなければなりません

プログラムにシグナル型 NaN が含まれる場合は、すべての例外をトラップするために、-qflttrap とともに -qfloat=nans を使用してください。

-qflttrap オプションを -qoptimize オプションとともに指定する場合、コンパイラーは、以下の例に示すように振る舞います。

浮動小数点のオーバーフローとアンダーフロー、および 0 による除法を検出するように myprogram.c をコンパイルするには、以下を入力します。

xlc myprogram.c -qflttrap=overflow:underflow:zerodivide:enable

関連参照

コンパイラーのコマンド行オプション
float
O、optimize IBM Copyright 2003