Rational Developer for System z
Enterprise PL/I for z/OS, Version 3.8, コンパイラーおよびランタイム 移行ガイド

IBM2611, IBM2612: 重複する WHEN

「作業」コードの一部をコンパイルしているときに、 次のようなメッセージが表示されることもあります。

  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' ) とコーディングされるはずであったことを示しています。

従来のコンパイラーでは何のメッセージも発行されず、また場合によって は生成されたコードが間違いでないこともあります。しかし、このメッセージを 生成するコードがあれば、詳しく調べることをお勧めします。


Terms of use | Feedback

This information center is powered by Eclipse technology. (http://www.eclipse.org)