Enterprise COBOL コンパイラーは、次の 2 つのいずれかの場合に、矛盾するコンパイラー・オプションに遭遇することがあります。つまり、同じオプションの肯定形式と否定形式の両方が優先順位の階層の中で同じレベルで指定されている場合、または相互に排他的なオプションが優先順位の階層の中で同じレベルで指定されている場合です。
矛盾するオプションが階層中の同じレベルに指定されている (例えば、PROCESS または CBL ステートメントに DECK と NODECK の両方が指定されている) 場合は、最後に指定したオプションが有効になります。
相互に排他的なコンパイラー・オプションを同じレベルに指定すると、コンパイラーはエラー・メッセージを生成し、オプションの一方を対立しない値に強制します。 例えば、PROCESS ステートメントで OFFSET と LIST の両方を指定すると、指定した順序に関係なく、OFFSET が有効になり、LIST は無視されます。
しかし、高レベルの優先順位でコーディングされたオプションは、低レベルの優先順位で指定されたオプションをオーバーライドします。例えば、JCL ステートメントでは OFFSET をコーディングし、PROCESS ステートメントでは LIST をコーディングすると、PROCESS ステートメントでコーディングされたオプションと、PROCESS ステートメントで強制的にオンにされたオプションの優先順位の方が高いため、LIST が有効になります。
| 指定される | 無視される Ignored1 | 強制的にオンにされる 1 |
|---|---|---|
| CICS | NOLIB | LIB |
| DYNAM | NODYNAM | |
| NORENT | RENT | |
| DLL | DYNAM | NODYNAM |
| NORENT | RENT | |
| EXIT | DUMP | NODUMP |
| EXPORTALL | NODLL | DLL |
| DYNAM | NODYNAM | |
| NORENT | RENT | |
| MDECK | NOLIB | LIB |
| NSYMBOL(NATIONAL) | NODBCS | DBCS |
| OFFSET | LIST | NOLIST |
| SQL | NOLIB | LIB |
TEST |
NOOBJECT | OBJECT |
| OPT(STD) または OPT(FULL) | NOOPTIMIZE | |
| THREAD | NORENT | RENT |
| WORD | FLAGSTD | NOFLAGSTD |
|
||