Consider the following somewhat senseless, but illustrative, code fragment:
call y;
x: proc returns( pointer );
y: entry;
return( sysnull() );
end;
This program fragment is in error because when the procedure is entered at Y no value should be returned, but the code attempts to return a value nonetheless.
Under the old compiler, no condition would be intentionally raised when the invalid return was attempted, and the program might fail in any number of ways (and it might even complete "successfully").
Under the new compiler, the ERROR condition would be intentionally raised by the generated code with ONCODE=9004.