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

無効な RETURN

やや非常識ではあるが例としては分かりやすい、次のコード・フラグメン トについて見てましょう。

    call y;

    x: proc returns( pointer );
      y: entry;
      return( sysnull() );
    end;

Y においてプロシージャーが開始されたとき、どのような値も戻されるべ きではないにもかかわらず、コードは値を戻そうとするため、このプログラム ・フラグメントは間違っています。

従来のコンパイラーでは、無効な戻り値を返そうとした場合、どのような条件 も意図的に発生させられず、プログラムでは、さまざまな形でエラ ーが発生することがありました (場合によっては「正常に」終了することさ えありました)。

新しいコンパイラーでは、生成されたコードにより、 ONCODE=9004 が設定された ERROR 条件が意図的に発生させられます。


Terms of use | Feedback

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