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

RULES(NOLAXDCL)

RULES(LAXDCL) causes the compiler to emit only an I-level message for each undeclared variable. But, under RULES(NOLAXDCL), you get an E-level message.

If your code is to have any reasonable quality, you should always compile with RULES(NOLAXDCL).

However, when we made this the default on Windows, too many users objected, and it is now not the default.

Under RULES(NOLAXDCL), compiling:

   x: proc( starting_role ) returns( fixed bin(31) );
     dcl starting_role fixed bin(31);
     return( starring_role + 1 );
  end;

will cause the compiler to issue an E-level message saying that starring_role is undeclared. This would alert you to the fact that this name is almost certainly a typo, and this is an example of why you want to use this compiler option.

The option RULES(NOLAXDCL) may also flag "working" code:

     read_in = fileread( file_in, addr(buffer), stg(buffer) );

     if read_in = 0 then
       leave;

If read_in is undeclared, the code will work; however, read_in will have FLOAT as an attribute and that is probably not what you want.


Terms of use | Feedback

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