CHECK オプションは、コンパイラーが、さまざまな
プログラミング・エラーを検出するための特殊なコードを生成するかどうかを指定します。

.-NOCONFORMANCE-.
>>-CHECK--(-+-CONFORMANCE---+-)--------------------------------><
CHECK(CONFORMANCE) を指定すると、プロシージャーに渡された
引数の属性が、宣言されたパラメーターの属性と一致する場合に、
以下の状況で、実行時に検査するコードをコンパイラーが生成します。
- パラメーターが固定長で宣言されたストリング (またはストリングの配列) である場合、
渡された引数が一致する長さでないと、STRINGSIZE 条件が発生します。
- パラメーターがストリング (またはストリングの配列) である場合、引数が同じ長さタイプ (VARYING、NONVARYING、または VARYINGZ) でないと、STRINGSIZE 条件が発生します。
- パラメーターが (スカラーまたは構造体の) 配列である場合、渡された引数の定数境界と一致しない定数境界があると、SUBSCRIPTRANGE 条件が発生します。
すべてのエクステントが定数で、引数に含まれる配列エレメントのサイズとスペーシングがパラメーターのものと一致しない場合も、SUBSCRIPTRANGE 条件が発生します。
構造体内部の配列はチェックされません。
- パラメーターが定数エクステントを持つ構造体または共用体である場合、最後のエレメントのオフセットが、渡された引数のオフセットと一致しないと、SUBSCRIPTRANGE 条件が発生します。
- プロシージャーに RETURNS BYADDR 属性があり、その属性がストリング・タイプ
を指定している場合、RETURNS 値に対して渡されたストリングが一致する長さでないと、STRINGSIZE
条件が発生します。
プロシージャーに NODESCRIPTOR
オプションが適用される場合、またはブロックに ENTRY ステートメント
が含まれている場合、あるいは CMPAT(LE) オプションが有効な場合には、
この追加のコードは生成されません。
|
This information center is powered by Eclipse technology. (http://www.eclipse.org)