Programs that utilize parameterized sections have the following limitations or restrictions:
- Must be compiled using PERFORM-TYPE"MF".
- The parameterized section must be well-structured, which in this context is defined as one that is not part of an overlapping
perform range, has no trickle in/out of the section, or has no GOTO in/out of the section. It should only be able to be reached
by a simple PERFORM operation.
- It may contain paragraphs, but such paragraphs cannot be the target of PERFORM statements; they can only be the target of
GO TO statements within the parameterized section itself.
In addition, for native COBOL programs (i.e. programs not compiled with ILGEN or JVMGEN) compiled with the default DECLARE"2"
directive, the same restriction on contained paragraphs applies to any section that declares local variables with a DECLARE
statement.
- All invocations must pass the correct number of arguments, and each argument should be of a compatible type. Where appropriate,
return types must also be compatible.
- When producing intermediate code, a 16KB limit to store all local variables and active parameters is imposed; a
COBRT133 Size of declare local items including parameters exceeds 16Kb error is generated if this limit is exceeded.
- If a parameterized section contains more than 64KB of declared local variables (including the size of any returning parameters)
a COBCH2201
Allocation of declare local and/or section parameters exceeds 64Kb error is generated.