やや非常識ではあるが例としては分かりやすい、次のコード・フラグメン トについて見てましょう。
call y;
x: proc returns( pointer );
y: entry;
return( sysnull() );
end;
Y においてプロシージャーが開始されたとき、どのような値も戻されるべ きではないにもかかわらず、コードは値を戻そうとするため、このプログラム ・フラグメントは間違っています。
従来のコンパイラーでは、無効な戻り値を返そうとした場合、どのような条件 も意図的に発生させられず、プログラムでは、さまざまな形でエラ ーが発生することがありました (場合によっては「正常に」終了することさ えありました)。
新しいコンパイラーでは、生成されたコードにより、 ONCODE=9004 が設定された ERROR 条件が意図的に発生させられます。