A fix is available
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
| SC26494108 | SC26494008 | SC26349407 |
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