IBM Support

PI98655: SET HLASM OPTION ILMA ON BY DEFAULT

A fix is available

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • Users are surprised when inline macros disappear after ACONTROL
    OPTABLE is used to switch instruction set, and standard z/OS
    macros such as IEABRCX can get assembly errors as a result.  The
    ILMA option (define InLine Macros in All operation code tables)
    was added to address this problem, but was not turned on by
    default, for compatibility with the previous unhelpful and
    undocumented processing.  This is continuing to cause problems,
    so it would be better to change the default to ILMA, in order to
    support z/OS macros correctly and conform to user expectations,
    as it is believed to be unlikely that anyone is relying on the
    NOILMA option, and even if they are it is easy to override the
    default option.
    

Local fix

  • Specifify ILMA option manually
    

Problem summary

  • ****************************************************************
    * USERS AFFECTED: Users of HLASM for z/OS, z/VM, z/VSE and     *
    *                 Linux                                        *
    ****************************************************************
    * PROBLEM DESCRIPTION: Set HLASM option ILMA on by default     *
    ****************************************************************
    * RECOMMENDATION:                                              *
    ****************************************************************
    Users are surprised when inline macros disappear after ACONTROL
    OPTABLE is used to switch instruction set, and standard z/OS
    macros such as IEABRCX can get assembly errors as a result.  The
    ILMA option (define InLine Macros in All operation code tables)
    was added to address this problem, but was not turned on by
    default, for compatibility with the previous unhelpful and
    undocumented processing.  This is continuing to cause problems,
    so it would be better to change the default to ILMA, in order to
    support z/OS macros correctly and conform to user expectations,
    as it is believed to be unlikely that anyone is relying on the
    NOILMA option, and even if they are it is easy to override the
    default option.
    

Problem conclusion

  • The HLASM standard default option is changed from NOILMA to
    ILMA. This affects the ASMAOPT macro used to define installation
    defaults and the supplied ASMADOPT installation defaults module.
    
    If an installation is using its own customized defaults module,
    this change will not take effect until they either rebuild the
    module using the updated ASMAOPT macro or replace it with the
    supplied standard installation defaults module.
    
    There is a very small chance that this could impact programs
    which were relying on the old behavior but had not specified the
    NOILMA option.  This only affects HLASM programs which use
    ACONTROL OPTABLE to switch instruction set and rely on being
    able to define different inline macros for different OPTABLE
    values. Changing the default to ILMA would then have the effect
    that the last definition of the macro would be visible for all
    OPTABLE values. If this causes a problem, the NOILMA option can
    be used to reinstate the previous behavior.
    
    Note that the ILMA or NOILMA option can be specified on the
    ACONTROL statement, although this was not documented when the
    option was introduced.
    
    When the ILMA option is in effect, SYSLIB macros will also be
    defined for all OPTABLE definitions. This should not cause any
    significant functional change, but avoids the overheads of
    fetching and tracking a new copy of the macro for each OPTABLE.
    
    DOCUMENTATION UPDATES:
    
    These updates correct errors and omissions in the original
    documentation of the ILMA option in addition to documenting
    the changed default value.
    
    In HLASM Programmer's Guide, SC26-4941-08:
    
    The description of the ILMA option in the "Assembler Options"
    section in Chapter 3 is changed to the following:
    
      +-----------------------------------------------------------+
      |                                                           |
    | |      --ILMA----                                           |
    | |     |          |                                          |
    | | >>--+----------+--------------------------------------->< |
    | |     |          |                                          |
    | |      --NOILMA--                                           |
      |                                                           |
      +-----------------------------------------------------------+
    
      Default
    |   ILMA
      Abbreviations
        None
    | Parameter of ACONTROL statement
    |   You can specify the ILMA or NOILMA option as a parameter of
    |   the ACONTROL statement. For further details, refer to the
    |   ACONTROL instruction in the HLASM Language Reference.
      ILMA
        Specifies that inline macros are accessible from all OPTABLE
        definitions.
      NOILMA
        Specifies that inline macros are associated with the current
        OPTABLE that is in use.
    
    | Notes:
    | 1. If your program is assembled using macro instructions
    |    provided with IBM products, use the default (ILMA) unless
    |    directed otherwise.
    
    In HLASM Language Reference, SC26-4940-08:
    
    The description of the ACONTROL instruction is updated as
    follows:
    
    In the first paragraph, insert ILMA in the alphabetical list of
    supported options, and also add OPTABLE which had accidentally
    been omitted from previous updates:
    
      The ACONTROL instruction can change these HLASM options and
      controls within a program:
      - AFPR
        Note: The AFPR option is not available as an assembler
        option at invocation the assembler. It can only be used on
        ACONTROL instructions.
      - COMPAT
      - FLAG (except the RECORD/NORECORD and the PUSH/NOPUSH
        suboptions)
    | - ILMA
      - LIBMAC
    | - OPTABLE
      - RA2
      - TYPECHECK
    
    Within the list of ACONTROL option descriptions, insert ILMA in
    alphabetical sequence, before LIBMAC, as follows:
    
    | +-----------------------------------------------------------+
    | |                                                           |
    | | >>--+--NOILMA--+--------------------------------------->< |
    | |     |          |                                          |
    | |      --ILMA----                                           |
    | |                                                           |
    | +-----------------------------------------------------------+
    |
    | NOILMA
    |   Specifies that inline macros are associated with the current
    |   OPTABLE that is in use.
    | ILMA
    |   Specifies that inline macros are accessible from all OPTABLE
    |   definitions.
    |
    | Notes:
    | 1. If your program is assembled using macro instructions
    |    provided with IBM products, use the default (ILMA) unless
    |    directed otherwise.
    
    The notes at the end of the description of the OPTABLE option
    within the ACONTROL options are replaced with the following:
    
      Notes:
    | Macros may optionally be associated with specific OPTABLE
    | settings:
    |
    | - If the default ILMA option is in effect at the time a macro
    |   is defined (by being read inline from the input stream or
    |   fetched from SYSLIB) the definition is assumed to apply to
    |   all OPTABLE settings.
    |
    | - If the NOILMA option is in effect, the macro is only defined
    |   for the current OPTABLE, so it will not be visible when any
    |   other OPTABLE setting is in effect. For a SYSLIB macro, this
    |   will merely cause a new copy to be fetched if a macro is
    |   referenced while using a different OPTABLE. For inline
    |   macros this means that different macro definitions can be
    |   established for use with different OPTABLEs.
    
    In HLASM Installation and Customization Guide, SC26-3494-07:
    
    Insert the new description of the ILMA option at the appropriate
    alphabetical position in the section 'ASMAOPT options' in
    Appendix A:
    
    | ILMA
    | ----
    | +-----------------------------------------------------------+
    | |                                                           |
    | |      --ILMA=YES--                                         |
    | |     |            |                                        |
    | | >>--+------------+------------------------------------->< |
    | |     |            |                                        |
    | |      --ILMA=NO---                                         |
    | |                                                           |
    | +-----------------------------------------------------------+
    |
    | YES
    |   Specifies that inline macros are accessible from all OPTABLE
    |   definitions.
    | NO
    |   Specifies that inline macros are associated with the current
    |   OPTABLE that is in use.
    | Default
    |   ILMA=YES
    
    Insert keyword ILMA (before IMPLENWARN) in the alphabetical list
    of option keywords which can be fixed using the DELETE parameter
    in the section 'ASMAOPT options'.
    
    Insert a table entry for the ILMA option at the appropriate
    alphabetical position in each occurrence of the Table 'Worksheet
    Options', with default value YES, referring to the new ILMA
    option description.
    
    Insert keyword ILMA in the 'Assembler options' list in
    Chapter 24 'Modifier keywords'.
    
    END OF DOCUMENTATION UPDATES
    

Temporary fix

Comments

APAR Information

  • APAR number

    PI98655

  • Reported component name

    HLASM MVS, VM &

  • Reported component ID

    569623400

  • Reported release

    160

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt / Xsystem

  • Submitted date

    2018-05-31

  • Closed date

    2018-06-20

  • Last modified date

    2018-07-02

  • APAR is sysrouted FROM one or more of the following:

  • APAR is sysrouted TO one or more of the following:

    UI56705 UI56706 UI56707

Modules/Macros

  •    ASMADOPT ASMAINFO ASMAOPT  ASMA15   ASMA9Z
    

Publications Referenced
SC26494108SC26494008SC26349407  

Fix information

  • Fixed component name

    HLASM MVS, VM &

  • Fixed component ID

    569623400

Applicable component levels

  • R160 PSY UI56706

       UP18/06/21 P F806

  • R360 PSY UI56705

       UP18/06/20 P 1806

  • R689 PSY UI56707

       UP18/06/20 I 1000

Fix is available

  • Select the PTF appropriate for your component level. You will be required to sign in. Distribution on physical media is not available in all countries.

[{"Business Unit":{"code":"BU054","label":"Systems w\/TPS"},"Product":{"code":"SG19M","label":"APARs - z\/OS environment"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"160","Edition":"","Line of Business":{"code":"","label":""}},{"Business Unit":{"code":"BU059","label":"IBM Software w\/o TPS"},"Product":{"code":"SSENW6","label":"High Level Assembler and Toolkit Feature"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"160","Edition":"","Line of Business":{"code":"","label":""}}]

Document Information

Modified date:
02 July 2018