IBM Support

PH30060: ASMA951U AFTER OPSYN CHANGES INSTRUCTION USED IN MACRO

A fix is available

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • If OPSYN changes a model instruction in a macro definition to an
    instruction which is not allowed to be generated (as listed for
     message ASMA001E) this can cause ASMA951U or other errors.
    

Local fix

Problem summary

  • ****************************************************************
    * USERS AFFECTED: Users of HLASM for z/OS, z/VM, z/VSE and     *
    *                 Linux                                        *
    ****************************************************************
    * PROBLEM DESCRIPTION: If OPSYN changes a model instruction    *
    *                      in a macro definition to an             *
    *                      instruction which is not allowed to     *
    *                      be generated this can cause ASMA951U    *
    *                      or other errors. This fix corrects      *
    *                      this issue.                             *
    ****************************************************************
    * RECOMMENDATION:                                              *
    ****************************************************************
    When a macro is defined, various assembler instructions are
    recognized as part of the macro and encoded during definition,
    and all other instructions are saved as model statements, which
    will be used to generate machine or assembler instructions when
    the macro is invoked.
    
    Generation of a model statement must not result in attempting
    to generate a restricted instruction that should have been
    encoded when the macro was defined, as this cannot be handled
    at macro generation time.  There is therefore a check at macro
    generation time to reject any restricted instruction with
    message ASMA001E.
    
    This check was only being performed if the operation code was
    generated by variable substitution, as it was assumed that any
    other operation code would have been checked when the macro was
    defined.  However, the meaning of an operation code can be
    redefined by the OPSYN instruction, which can assign the current
    function of one operation code to another operation code, making
    the redefined operation code a new name for the function of the
    existing instruction.
    
    If the operation code was changed using OPSYN after the macro
    was defined, making it a restricted instruction, this bypassed
    the ASMA001E check.  In most cases, this would cause termination
    of the assembler with message ASMA951U because the assembler
    instruction type did not map to a supported operation.  As a
    special case, if the instruction was changed to a synonym of
    REPRO, this caused an attempt to copy the next line to the
    object code file, but it was not in the correct format for
    REPRO, producing incorrect results.
    

Problem conclusion

  • The check for restricted instructions is now performed even when
    the operation code does not include a variable.  This means that
    message ASMA001E will be issued if OPSYN is used to change a
    model instruction to a restricted instruction as listed for this
    message.
    
    During testing it was noted that two instructions CATTR and
    ALIAS had been incorrectly marked as restricted, so they were
    previously rejected with message ASMA001E if the operation code
    was created by variable substitution.  This has been corrected.
    

Temporary fix

Comments

APAR Information

  • APAR number

    PH30060

  • 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

    2020-10-01

  • Closed date

    2020-10-07

  • Last modified date

    2020-11-02

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

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

    UI71966 UI71967 UI71968

Modules/Macros

  •    ASMAINFO ASMA1L   ASMA1R   ASMA5UNI ASMA9Z
    

Fix information

  • Fixed component name

    HLASM MVS, VM &

  • Fixed component ID

    569623400

Applicable component levels

  • R160 PSY UI71967

       UP20/10/08 P F010

  • R360 PSY UI71966

       UP20/10/07 P 2010

  • R689 PSY UI71968

       UP20/10/07 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.

[{"Line of Business":{"code":null,"label":null},"Business Unit":{"code":"BU059","label":"IBM Software w\/o TPS"},"Product":{"code":"SSENW6","label":"High Level Assembler and Toolkit Feature"},"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"160"}]

Document Information

Modified date:
03 November 2020