「作業」コードの一部をコンパイルしているときに、 次のようなメッセージが表示されることもあります。
IBM2611I W The binary value ... appears in more than one WHEN clause.
IBM2612I W The character string ... appears in more than one WHEN clause.
このメッセージは、この章で説明している他のいくつかのメッセージよりも 理解しやすく、次のようなコードにより生成されます。
SELECT( OPT );
WHEN( 'f','F' )
BUFROM = ETOS(OPTARG);
WHEN( 'T','T' )
BUTO = ETOS(OPTARG);
WHEN( 'n','N' )
MAXRECIN = ETOL(OPTARG);
WHEN( 'k','K' )
KFLG = ^KFLG;
WHEN( 'm','M' )
MAXERR = ETOL(OPTARG);
OTHERWISE;
/* ungueltige Option */
END;
メッセージは、上記の 2 つ目の WHEN 文節が、 本来はおそらく WHEN( 't', 'T' ) とコーディングされるはずであったことを示しています。
従来のコンパイラーでは何のメッセージも発行されず、また場合によって は生成されたコードが間違いでないこともあります。しかし、このメッセージを 生成するコードがあれば、詳しく調べることをお勧めします。