IBM Support

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

    PH37332

  • 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-05-18

  • Closed date

    2021-05-19

  • Last modified date

    2021-06-02

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

    PH35976

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

Fix information

  • Fixed component name

    ENT COBOL FOR Z

  • Fixed component ID

    5655EC600

Applicable component levels

  • R630 PSY UI75468

       UP21/05/29 P F105

  • R631 PSY UI75469

       UP21/05/29 P F105

  • R632 PSY UI75470

       UP21/05/29 P F105

  • R63H PSY UI75471

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

Document Information

Modified date:
12 December 2023