この W レベル・メッセージは、起こり得るコーディング・エラーについてアラートするものです。 新しいコンパイラーによって生成されるメッセージは、次のようになります。
IBM1206I W BIT operators should be applied only to BIT operands.
このメッセージを出現させるステートメントに対して新しいコンパイラーが生成したコードは、従来のコンパイラーが生成したコードと同じです。ただし、従来のコンパイラーは警告メッセージを発行しませんでした。
このメッセージを生じさせ、その原因となりうるコーディング・エラーの例として、次のコードを見てみましょう。
dcl (x,y) fixed bin;
if x = ¬y then
...
if x ¬ y then
...
最初の IF ステートメントで、ビット接頭否定演算子は FIXED BIN 変数 y に適用されますが、おそらくそういう意図はなかったと思われます。 同様に、2 番目の IF ステートメントで、ビット 2 項排他的論理和演算子は FIXED BIN 変数 x および y に適用されますが、おそらくこの場合もそういう意図はなかったと思われます。 実際には、おそらく両方のステートメントにタイプミスがあり、変数 x および y が等しくないことを検査するはずでした。
また、ビット単位演算子を本当に意図する場合は、BIT 組み込み関数 (または INOT および IEOR 組み込み関数の可能性もある) を使用して、それを明確にすることがおそらく最善なことでしょう。