IBM Support

PI70268: CHANGE COBOL V5/V6 TO HAVE THE SAME AMODE SETTINGS IN THE ESD RECORDS (COMPILER OUTPUT OBJECT PROGRAM) AS IN COBOL V3/V4

A fix is available

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • change COBOL V5/V6 to have the same AMODE settings in the ESD
    records (compiler output object program) to be that same as in
    COBOL v3/V4. When RMODE(24) is in effect, the compiler will set
    AMODE(ANY) as in COBOL V4.2 and before.
    
    Scenario:
    When an AMODE24 assembler program does LINK (or LOAD & BSM) to
    COBOL program, V3.4 COBOL program runs as AMODE24 while V6
    COBOL program runs as AMODE31. If the assembler program passes
    the parameter address with 'dirty' highorder bits, such as
    'FF123456' which should be '00123456', the AMODE24 (V3.4)
    program works without problem but AMODE31 (V6) program gets
    S0C4 abend.
    

Local fix

  • N/A
    

Problem summary

  • ****************************************************************
    * USERS AFFECTED: Users of Enterprise COBOL V5.1 compiling     *
    *                 and running programs that are 'dynamically'  *
    *                 called by AMODE 24 assembler programs.       *
    *                 (Dynamically means LOAD and BRANCH or SVC    *
    *                 LINK.)  'Static' calls where the programs    *
    *                 are linked together by the Program           *
    *                 Management Binder (linkage editor) do not    *
    *                 have a problem.                              *
    *                                                              *
    ****************************************************************
    * PROBLEM DESCRIPTION: ABEND 0C4 at runtime if AMODE 24        *
    *                      parameters are passed with 'dirty'      *
    *                      addresses (IE: not clean AMODE 31       *
    *                      addresses) This happens whether the     *
    *                      COBOL program was compiled with         *
    *                      RMODE(24) or RMODE(ANY).                *
    *                                                              *
    ****************************************************************
    * RECOMMENDATION: Apply the provided PTF.                      *
    *                                                              *
    ****************************************************************
    In COBOL V4 and earlier, the Object Program output from the
    compiler was marked as AMODE ANY, so a separate COBOL program
    would get AMODE ANY from the Binder.  In COBOL V5 and V6, as
    shipped, the compiler marked the object programs as AMODE MIN,
    which resulted in the Binder giving the executable AMODE 31.
    This in turn caused the program to get control in AMODE 31
    which caused an ABEND 0C4 when the program tried to use the
    dirty addresses.  In older COBOL, with AMODE ANY, the program
    got control in AMODE 24, the AMODE of the calling program, and
    the addresses of the parameters were interpreted correctly.
    

Problem conclusion

  • The compiler is changed to mark the Object Program as AMODE ANY
    when RMODE(24) is in effect.  For RMODE(ANY), the Object
    Program is still marked with AMODE MIN.
    

Temporary fix

Comments

APAR Information

  • APAR number

    PI70268

  • Reported component name

    ENT COBOL FOR Z

  • Reported component ID

    5655W3200

  • Reported release

    510

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt / Xsystem

  • Submitted date

    2016-10-06

  • Closed date

    2016-10-19

  • Last modified date

    2016-11-02

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

    PI67026

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

    128AC7Ÿ

Modules/Macros

  • IGYECNTL
    

Fix information

  • Fixed component name

    ENT COBOL FOR Z

  • Fixed component ID

    5655W3200

Applicable component levels

  • R510 PSY UI41798

       UP16/10/26 P F610

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":"BU058","label":"IBM Infrastructure w\/TPS"},"Product":{"code":"SS6SG3","label":"Enterprise COBOL for z\/OS"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"510","Edition":"","Line of Business":{"code":"LOB17","label":"Mainframe TPS"}},{"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":"510","Edition":"","Line of Business":{"code":"","label":""}}]

Document Information

Modified date:
02 November 2016