IBM Support

PH42574: ABEND0C7 in #Calc* routine for LENGTH OF a non-parameter LINKAGE SECTION ODO structure

A fix is available

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • For structures involving ate least one OCCURS DEPENDING ON (ODO)
    clause, the compiler generates a #Calc* routine to determine the
    current LENGTH OF the structure.
    
    If the structure is defined in the LINKAGE SECTION and is NOT a
    parameter, addressability must be established via a
    
    SET ADDRESS OF structure TO some-address
    
    statement, which usually initializes the corresponding Base
    Locator for Linkage (BLL) cell to some-address. The optimizer
    may however incorrectly optimize away the setting of the BLL
    cell, keeping some-address in a register, and leaving the BLL
    cell in an uninitialized or stale state.
    
    If at least one ODO object (an item containing the occurs
    number) is part of the structure, a subsequent LENGTH OF
    structure will then abend in the #Calc* routine or potentially
    return the wrong length due to the incorrect BLL cell.
    

Local fix

Problem summary

  • ****************************************************************
    * USERS AFFECTED: Users of Enterprise COBOL 6.2 compiling and  *
    *                 running programs compiled with the OPT(1|2)  *
    *                 option, where the program contains a         *
    *                 statement of the form:                       *
    *                                                              *
    *                 SET ADDRESS OF <data-item-1> to ADDRESS OF   *
    *                 <data-item-2>                                *
    *                                                              *
    *                 and where data-item-1 is a data item in the  *
    *                 linkage section and contains a table defined *
    *                 with the OCCURS DEPENDING ON (ODO) clause.   *
    ****************************************************************
    * PROBLEM DESCRIPTION: S0C4 abend at runtime.                  *
    ****************************************************************
    * RECOMMENDATION: Apply the IBM-provided PTF.                  *
    ****************************************************************
    The compiler optimizer thought it could remove the code for the
    SET statement because it didn't understand that the BLL cell
    that was updated by the SET statement was needed by the code the
    compiler generates to manipulate various pieces of meta
    information for the ODO table.
    

Problem conclusion

  • The compiler was updated so that the relationship between the
    SET statement and the ODO table code that references the BLL
    cell
    modified by the SET statement is clear to the optimizer so that
    it doesn't inadvertently remove the SET statement.
    

Temporary fix

Comments

APAR Information

  • APAR number

    PH42574

  • Reported component name

    ENT COBOL FOR Z

  • Reported component ID

    5655EC600

  • Reported release

    620

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt / Xsystem

  • Submitted date

    2021-12-06

  • Closed date

    2021-12-09

  • Last modified date

    2022-01-04

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

    PH41808

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

Modules/Macros

  • IGY8RWTU IGYCASMB IGYCCBE  IGYCCCRT IGYCCICS IGYCCSRV IGYCDGEN
    IGYCDIAG IGYCDMAP IGYCEN$0 IGYCEN$1 IGYCEN$2 IGYCEN$3 IGYCEN$4
    IGYCEN$5 IGYCEN$8 IGYCEN$D IGYCEN$R IGYCFGEN IGYCFREE IGYCINIT
    IGYCJA$0 IGYCJA$1 IGYCJA$2 IGYCJA$3 IGYCJA$4 IGYCJA$5 IGYCJA$8
    IGYCJA$D IGYCJA$R IGYCLIBH IGYCLIBO IGYCLIBR IGYCLSTR IGYCLVL0
    IGYCLVL1 IGYCLVL2 IGYCLVL3 IGYCLVL8 IGYCMALL IGYCOSCN IGYCPGEN
    IGYCRCTL IGYCRDPR IGYCRDSC IGYCREAL IGYCRWT  IGYCSCAN IGYCSIMD
    IGYCUE$0 IGYCUE$1 IGYCUE$2 IGYCUE$3 IGYCUE$4 IGYCUE$5 IGYCUE$8
    IGYCUE$D IGYCUE$R IGYCXREF IGYDRV   IGYEQCWI IGYMSGE  IGYMSGK
    IGYMSGT  IGYQCBE  IGYZQDRV IGYZQENU IGYZQJPN
    

Fix information

  • Fixed component name

    ENT COBOL FOR Z

  • Fixed component ID

    5655EC600

Applicable component levels

  • R620 PSY UI78471

       UP21/12/15 P F112

  • R621 PSY UI78472

       UP21/12/15 P F112

  • R622 PSY UI78473

       UP21/12/15 P F112

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"},"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"620","Line of Business":{"code":"LOB35","label":"Mainframe SW"}}]

Document Information

Modified date:
12 December 2023