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