Conflicting compiler options

The Enterprise COBOL compiler can encounter conflicting compiler options in either of two ways: both the positive and negative form of an option are specified at the same level in the hierarchy of precedence, or mutually exclusive options are specified at the same level in the hierarchy.

When conflicting options are specified at the same level in the hierarchy (such as specifying both DECK and NODECK in a PROCESS or CBL statement), the option specified last takes effect.

If you specify mutually exclusive compiler options at the same level, the compiler generates an error message and forces one of the options to a nonconflicting value. For example, if you specify both OFFSET and LIST in a PROCESS statement in any order, OFFSET takes effect and LIST is ignored.

However, options coded at a higher level of precedence override any options specified at a lower level of precedence. For example, if you code OFFSET in a JCL statement but LIST in a PROCESS statement, LIST takes effect because the options coded in the PROCESS statement and any options forced on by an option coded in the PROCESS statement have higher precedence.

Table 1. Mutually exclusive compiler options
Specified Ignored1 Forced on1
AFP(VOLATILE) LP(64) LP(32)
CICS DYNAM NODYNAM
LP(64) LP(32)
NORENT RENT
DATA(24) LP(64) LP(32)
DLL DYNAM NODYNAM
NORENT RENT
EXPORTALL NODLL DLL
DYNAM NODYNAM
NORENT RENT
HGPR(NOPRESERVE) LP(64) LP(32)
LP(64) AFP(VOLATILE) AFP(NOVOLATILE)
CICS NOCICS
DATA(24) DATA(31)
HGPR(NOPRESERVE) HGPR(PRESERVE)
NODLL DLL
NORENT RENT
RMODE(24) RMODE(ANY)
Start of changeSMARTBINEnd of change Start of changeNOSMARTBINEnd of change
SQLIMS NOSQLIMS
THREAD NOTHREAD
NORENT RMODE(ANY) RMODE(24)
LP(64) LP(32)
NSYMBOL(NATIONAL) NODBCS DBCS
OBJECT DECK NODECK
OFFSET LIST NOLIST
PGMNAME(LM | LU) NAME NONAME
RMODE(24) LP(64) LP(32)
Start of changeSMARTBINEnd of change Start of changeLP(64)End of change Start of changeLP(32)End of change
Start of changeSOURCE(HEX)End of change Start of changeNUMBEREnd of change Start of changeNONUMBEREnd of change
Start of changeSEQUENCEEnd of change Start of changeNOSEQUENCEEnd of change
SQLIMS LP(64) LP(32)
TEST NOOBJECT and NODECK OBJECT and NODECK
THREAD INITIAL NOINITIAL
NORENT RENT
LP(64) LP(32)
WORD FLAGSTD NOFLAGSTD
  1. Unless in conflict with a fixed installation default option.

Related references  
OPTFILE