overflowIndicator
EGL は、以下の条件がすべて満たされた場合、
sysVar.overflowIndicator システム変数を 1 に設定します。
- V6 の例外モードを使用している (V6 の例外互換性の使用を参照)。
- vgVar.handleOverflow を有効に設定している (handleOverflowを参照)。
- ユーザー変数で算術オーバーフローが発生した。
オーバーフロー条件が発生していないかを確認するには、この変数を使用します。
V6 の例外モードを使用していない場合、 sysVar.overflowIndicator の値は未定義で、こ の値が有効であるとは限りません。
オーバーフロー条件を検出した後で、sysVar.overflowIndicator は自動的にリセットされません。 オーバーフロー検査を起動する可能性のある演算を実行する前に、sysVar.overflowIndicator を 0 にリセットするコードを、プログラムに組み込む必要があります。
sysVar.overflowIndicator は、以下の方法で使用できます。
- assignment 文または move 文のソースまたはターゲットとして (move 文の「for count」でも使用可能)
- 論理式の変数として
- exit または return 文の引数として
特性
sysVar.overflowIndicator には、以下の特性があります。
- プリミティブ型
- NUM
- データ長
- 1
- セグメント化された converse にわたって値が保存されるかどうか
- はい
例
以下の例は、はみ出し処理の検査を行います。
a = b / c;
if (sysVar.overflowIndicator != 0)
writeStdErr("Variable overflow in a");
a = -1; // これが無用であることを示すフラグを立てます
sysVar.overflowIndicator = 0; // 次の検査でこれをリセットします
end