Rational Developer for System z
Enterprise PL/I for z/OS, Version 3.8, Migration Guide

Dummy arguments and CONTROLLED

According to the Language Reference Manual, a dummy argument will be created if an argument is a CONTROLLED string or area (because an ALLOCATE statement could have changed the length or extent and hence have caused the string length or area size to be different than required by the called routine).

Under Enterprise PL/I, this is true unless the RULES(NOLAXCTL) option is in effect and the string length or area size is a constant. However, the old compiler was not always consistent about following this rule (which should always have applied since the old compiler had no equivalent to the RULES(NOLAXCTL) option.) The new compiler applies the rule consistently.

So, for example, given the following code

dcl x entry( char(8) );
dcl a controlled char(8);
dcl 1 b(2) controlled, 2 c char(8);
call x( a );
call y( b(1).c );

Dummy arguments should be created for both CALL statements, but only the Enterprise compiler will create a dummy argument for the second CALL.


Terms of use | Feedback

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