IBM Support

PH41808: 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.3 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

    PH41808

  • Reported component name

    ENT COBOL FOR Z

  • Reported component ID

    5655EC600

  • Reported release

    630

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt / Xsystem

  • Submitted date

    2021-11-02

  • Closed date

    2021-11-18

  • Last modified date

    2021-12-06

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

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

    UI78163 UI78164 UI78165 PH42574

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 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
    IGYQSPLT IGYZQEN6 IGYZQENU IGYZQJP6 IGYZQJPN
    

Fix information

  • Fixed component name

    ENT COBOL FOR Z

  • Fixed component ID

    5655EC600

Applicable component levels

  • R630 PSY UI78163

       UP21/11/25 P F111

  • R631 PSY UI78164

       UP21/11/25 P F111

  • R632 PSY UI78165

       UP21/11/25 P F111

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":"630","Line of Business":{"code":"LOB35","label":"Mainframe SW"}}]

Document Information

Modified date:
12 December 2023