Sometimes, it seems pretty easily, the output of HLASM
will include a zero-length PC (Private CSECT) section with
a valid of X'00' for the FLAG field, as evidenced from both
the HLASM listing and the ESD data in the ESD card of
the output file.

This can happen quite by accident and is clearly unintentional,
but it seems to be quite benign.

The flags field of a PC entry defines the AMODE and RMODE
for the CSECT.   AMODE is documented as being AMODE 24
if the lower bits are B'00' _or_ B'01'.   In this case, they would
be B'00'.   And the RMODE would be 24.

If I have such an AMODE24/RMODE 24 for a PC entry, I would expect the
resulting load module to be AMODE 24/RMODE 24 after binder processing;
but it doesn't appear to be so.

I could find nothing in the "Program Management: Advanced Facilities"
doc that indicated an AMODE flag value of B'00' is any different/special
verses B'01' (it is surprising that there are 2 AMODE 24 options there.)

So - my questions are this, and perhaps some binder aficiandos can
answer them:

  1) Is the AMODE specification of B'00' "special" in some way, vs. the
      presumably equivalent specification of B'01'.

  2) Does the binder ignore zero-length CSECTs when determining
      the resulting AMODE and RMODE of the result load module?
      (That would make some sense, but I couldn't find a statement
      to that effect.)  Seems like the "older" linkage-editor would
      need the same requirement.

    - Many thanks! -
    - Dave Rivers -

--
[email protected]                        Work: (919) 676-0847
Get your mainframe programming tools at http://www.dignus.com

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [email protected] with the message: INFO IBM-MAIN

Reply via email to