このメッセージは、PL/I 規則を誤って解釈している可能性があり、その結果、問題のソース となっている可能性があることをアラートするものです。
IBM2610I W One argument to BUILTIN X is FIXED DEC while the other is FIXED BIN
or FLOAT. Compiler will not interpret precision as FIXED DEC.
このメッセージは、MULTIPLY、DIVIDE、ADD、および SUBSTRACT 組み込み関数に適用されます。 以下の場合に、このメッセージが出される可能性が最も高くなります。
例えば、X が FIXED BIN(31) であると、コンパイラーは、 式 MULTIPLY( X, 1000, 15 ) にこのメッセージでフラグを立てます (この式が FIXED DEC(15) 変数に代入される場合であっても)。 これは、この関数の結果が属性 FIXED BIN(15) を持つためです。 この組み込み関数が FIXED DEC(15) の結果を生成することを意図していた場合 (例えば、乗算の結果が 2G より大きくなることが分かっているため)、 このコードは意図したようには実行されず、有効データを失う結果となることがあります。
この MULTIPLY の結果が FIXED DEC になるよう強制したい場合には、DECIMAL 組み込み関数を FIXED BIN 引数に適用できます (MULTIPLY( DEC(X), 1000, 15 ) のように)。 PRECTYPE コンパイラー・オプションを使用して、コンパイラーが精度を解釈する方法を変更する こともできますが、もちろん、そのようにすると他のステートメントでの解釈も変更してしまう 可能性があることになります。