SSRANGE

Turns on bounds checking for reference modifications, subscripting and indexes.
Note: This directive is supported for native COBOL only.

Syntax:

>>-.---.-.-SSRANGE-.----------.--.-------><
   +-/-+ |         +-"integer"+  |
         +-NOSSRANGE-------------+

Parameter:

integer
The level of SSRANGE support required. The possible values are:
1
At run-time, subscripts and indexes are checked to ensure they are not referencing an area outside the table, and reference modified items are checked for negative or zero value.
2
At both compile time and run time, subscripts, reference modified items, and indexes are checked to ensure they are not referencing an area outside the table. For .NET COBOL reference modification, this is equivalent to CHECKREFMOD"NOZEROLENGTH".
3
As SSRANGE"2", except that reference modifies lengths of zero are permitted at run time. However, if a reference modified length is known to be zero at compile time, an error is generated. For .NET COBOL reference modification, this is equivalent to CHECKREFMOD.

Properties:

Default: NOSSRANGE
Phase: Syntax check
$SET: Initial

Dependencies:

Sets BOUND immediately

Comments:

This directive is provided for emulation of the IBM mainframe compiler of the same name; because of this, its scope is limited to the syntax permissible in a mainframe dialect.

If you set SSRANGE without an integer, the behavior is the same as SSRANGE"2".

For unbounded groups or their subordinate items, checking is done only for reference modification expressions. Subscripted or indexed references to tables subordinate to an unbounded group are not checked.