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
Start of changeAFP(VOLATILE)End of change LP(64) LP(32)
CICS DYNAM NODYNAM
Start of changeLP(64)End of change Start of changeLP(32)End of change
NORENT RENT
Start of changeDATA(24)End of change Start of changeLP(64)End of change Start of changeLP(32)End of change
DLL DYNAM NODYNAM
NORENT RENT
EXPORTALL NODLL DLL
DYNAM NODYNAM
NORENT RENT
Start of changeHGPR(NOPRESERVE)End of change Start of changeLP(64)End of change Start of changeLP(32)End of change
Start of changeLP(64)End of change Start of changeAFP(VOLATILE)End of change Start of changeAFP(NOVOLATILE)End of change
Start of changeCICSEnd of change Start of changeNOCICSEnd of change
Start of changeDATA(24)End of change Start of changeDATA(31)End of change
Start of changeHGPR(NOPRESERVE)End of change HGPR(PRESERVE)
Start of changeNODLLEnd of change Start of changeDLLEnd of change
Start of changeNORENTEnd of change Start of changeRENTEnd of change
Start of changeRMODE(24)End of change Start of changeRMODE(ANY)End of change
Start of changeSQLIMSEnd of change Start of changeNOSQLIMSEnd of change
Start of changeTHREADEnd of change Start of changeNOTHREADEnd of change
NORENT RMODE(ANY) RMODE(24)
Start of changeLP(64)End of change Start of changeLP(32)End of change
NSYMBOL(NATIONAL) NODBCS DBCS
OBJECT DECK NODECK
OFFSET LIST NOLIST
PGMNAME(LM | LU) NAME NONAME
Start of changeRMODE(24)End 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
Start of changeSQLIMSEnd of change Start of changeLP(64)End of change Start of changeLP(32)End of change
TEST NOOBJECT and NODECK OBJECT and NODECK
THREAD Start of changeINITIALEnd of change Start of changeNOINITIALEnd of change
NORENT RENT
Start of changeLP(64)End of change Start of changeLP(32)End of change
WORD FLAGSTD NOFLAGSTD
  1. Unless in conflict with a fixed installation default option.

Related references  
OPTFILE