Controls the operation of comparisons between integer numeric data items of USAGE DISPLAY and alphanumeric literals, figurative constants, or numeric operands.
This directive can adversely affect the performance of generated code.
Syntax:
>>--.---.--.----.--HOST-NUMCOMPARE------><
+-/-+ +-NO-+
Properties:
Default:
|
NOHOST-NUMCOMPARE
|
Phase:
|
Syntax check
|
$SET:
|
Any
|
Comments:
This directive is provided to improve compatibility with IBM mainframe compilers, resulting in a run-time error 163 ("Illegal character in numeric field") in cases where a S0C7 would have occurred on the mainframe.
Setting HOST-NUMCOMPARE improves compatibility with IBM mainframe compilers for a subset of IF statements when comparing numeric data items with numeric data items or numeric literals.
It is not possible to guarantee 100% compatibility with the IBM mainframe behavior, but setting HOST-NUMCOMPARE does provide emulation for the most common cases.
HOST-NUMCOMPARE is only supported for SIGN settings of ASCII, MF, EBCDIC, and IBM.
For managed COBOL, SIGN"EBCDIC", along with one of HOST-NUMMOVE, HOST-NUMCOMPARE or SIGN-FIXUP is an invalid combination of directives, and is rejected during compilation. For native COBOL, the combination is permitted.
Use HOST-NUMCOMPARE with CHARSET(EBCDIC) for maximum compatibility with IBM mainframe behavior. If CHARSET(ASCII) is used, then some compatibility may be lost due to character encoding differences.