I've noticed that the IBM CELQPRLG macro emits the following statements unconditionally (the numbers in parens at the start of each line below are for reference; they are not an actual portion of the emitted statement).
(1) ENTRY &CEEEPNM (2) &CEEEPNM DS 0H (3) &CEEEPNM AMODE 64 (4) &CEEEPNM RMODE ANY I'm trying to understand why the High Level Assembler doesn't flag statement 4 as being in error, since specifying RMODE for a symbol defined as an ENTRY point (which was done on statement 1) is not supposedly valid. Here is what the HLASM Language Reference (SC26-4940-06) states about the RMODE statement: RMODE instruction The RMODE instruction specifies the residence mode to be associated with control sections in the object deck. name RMODE 24 31 64 ANY name Is the name field that associates the residence mode with a control section. If there is a symbol in the name field, it must also appear in the name field of a START, CSECT, RSECT, or COM instruction in this assembly. If the name field is space-filled, there must be an unnamed control section in this assembly. If the name field contains a sequence symbol (see “Symbols” on page 25 for details), it is treated as a blank name field.
