Controls the operation of comparisons involving numeric data items.
CAUTION:
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 other operands.
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 .NET 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.