According to the Language Reference Manual, a dummy argument will be created if an argument differs from its parameter description in its alignment. However, the old compiler followed this rule for CHARACTER NONVARYING, but not for CHARACTER VARYING. The new compiler applies the rule consistently.
So, for example, given the following code
dcl x entry( unaligned char(8) ); dcl y entry( unaligned char(8) varying ); dcl a aligned char(8); dcl b aligned char(8) varying; call x( a ); call y( b );
Dummy arguments should be created for both CALL statements, but only the Enterprise compiler will create a dummy argument for the second CALL.
Note that you can use the DEFAULT(DUMMY(UNALIGNED)) compiler option to make the compiler ignore alignment mismatches when deciding when to create dummy arguments. If this option were in effect, the compiler would not create a dummy argument for either of the CALLs in the above example.