IBM Support

PH35976: USERS OF IBM ENTERPRISE COBOL 6.X COMPILING PROGRAMS WITH INITCHECK(STRICT) AND OPT(0)

A fix is available

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • PROBLEM DESCRIPTION: The compiler may produce additional
    IGYCB7311-W messages compared to INITCHECK(LAX) or OPT(1|2)
    
    USERS AFFECTED: Users of IBM Enterprise COBOL 6.x compiling
    programs with INITCHECK(STRICT) and OPT(0) that contain multiple
    EXEC CICS HANDLE statements.
    
    PROBLEM SUMMARY: INITCHECK looks at the flow of data through the
     program to determine where data items are initialized. When
    EXEC CICS HANDLE statements are used, the compiler must do
    additional analysis to correctly determine the flow of data when
     there are CICS exceptions. Without this analysis, the compiler
    may see non-existent paths where a data item that's
    uninitialized before a CICS exception may be incorrectly seen as
     uninitialized at some later use. Since under INITCHECK(STRICT),
     a data item must be initialized on all paths to  COBOL
    statement in order to be considered initialized at that
    statement, an IGYCB7311-W message is incorrectly reported. The
    additional analysis to correctly determine how data flows
    through CICS exceptions was only done at OPT(1|2).
    
    CONCLUSION: The compiler was fixed so that when INITCHECK is
    used, the additional analysis to correctly determine the flow of
    data when there are CICS exceptions is run even at OPT(0).
    

Local fix

  • WORKAROUND/CIRCUMVENTION: Compile at OPT(1|2) or with
    NOINITCHECK or INITCHECK(LAX)
    

Problem summary

  • ****************************************************************
    * USERS AFFECTED: Users of IBM Enterprise COBOL 6.2 compiling  *
    *                 programs with INITCHECK(STRICT) and OPT(0)   *
    *                 that contain  multiple EXEC CICS HANDLE      *
    *                 statements.                                  *
    ****************************************************************
    * PROBLEM DESCRIPTION: The compiler may produce additional     *
    *                      IGYCB7311-W messages compared to        *
    *                      INITCHECK(LAX) or OPT(1|2).             *
    ****************************************************************
    * RECOMMENDATION: Apply the provided PTF.                      *
    ****************************************************************
    INITCHECK looks at the flow of data through the program to
    determine where data items are initialized. When EXEC CICS
    HANDLE statements are used, the compiler must do additional
    analysis to correctly determine the  flow of data when there are
    CICS exceptions. Without this analysis, the compiler may see
    non-existent paths where a data item that's uninitialized before
    a CICS exception may be incorrectly seen as uninitialized at
    some later use . Since under INITCHECK(STRICT), a data item must
    be initialized on all paths to  COBOL statement in order to be
    considered initialized at that statement, an IGYCB7311-W message
    is incorrectly reported. The additional analysis to correctly
    determine how data flows through CICS exceptions was only done
    at OPT(1|2).
    

Problem conclusion

  • The compiler was fixed so that when INITCHECK is used, the
    additional analysis to correctly determine the flow of data when
    there are CICS exceptions is run even at OPT(0).
    

Temporary fix

Comments

APAR Information

  • APAR number

    PH35976

  • 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-04-02

  • Closed date

    2021-04-29

  • Last modified date

    2021-06-01

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

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

    PH37332

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 IGYCOB2E IGYCOPI
    IGYCOPT  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 UI75163

       UP21/05/04 P F105

  • R621 PSY UI75164

       UP21/05/04 P F105

  • R622 PSY UI75165

       UP21/05/04 P F105

  • R62H PSY UI75166

       UP21/05/04 P F105

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