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
CICS DYNAM NODYNAM
NORENT RENT
DLL DYNAM NODYNAM
NORENT RENT
EXPORTALL NODLL DLL
DYNAM NODYNAM
NORENT RENT
NORENT RMODE(ANY) RMODE(24)
NSYMBOL(NATIONAL) NODBCS DBCS
OBJECT DECK NODECK
OFFSET LIST NOLIST
Start of changeOPTIMIZE(0)End of change Start of changeINITCHECKEnd of change Start of changeNOINITCHECKEnd of change
PGMNAME(LM|LU) NAME NONAME
TEST NOOBJECT and NODECK OBJECT and NODECK
THREAD NORENT RENT
WORD FLAGSTD NOFLAGSTD
  1. Unless in conflict with a fixed installation default option.

related references  
OPTFILE