IBM Support

PH24413: ENHANCEMENT TO THE INITCHECK OPTION TO FIND ALL POSSIBLE "USED WITHOUT BEING INITIALIZED" FIELD

A fix is available

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as new function.

Error description

  • Enhancement to the INITCHECK option to find all possible "used
    without being initialized" field
    

Local fix

  • New Function
    

Problem summary

  • ****************************************************************
    * USERS AFFECTED: All users of the Enterprise COBOL V6.2       *
    *                 compiler who are compiling programs with the *
    *                 INITCHECK compiler option and who would      *
    *                 like to expand the scope of data items that  *
    *                 are flagged as uninitialized.                *
    ****************************************************************
    * PROBLEM DESCRIPTION: New function: The current version of    *
    *                      the INITCHECK compiler option will only *
    *                      issue a warning message for data items  *
    *                      that are uninitialized on any and all   *
    *                      logic paths in the source program,      *
    *                      where it is referenced.                 *
    ****************************************************************
    * RECOMMENDATION: Apply the provided PTF.                      *
    ****************************************************************
    The way that the INITCHECK option is implemented in the
    compiler, it will not identify a data item that may be
    initialized on one path in a logic statement, but not on other
    paths, as uninitialized.  Customers have requested that this
    function be enhanced to allow for flagging data items that may
    be initialized on one path in a given logic, but not on another
    path, as being uninitialized.
    

Problem conclusion

Temporary fix

Comments

  • The INITCHECK compiler option has been improved to
    support two new sub options LAX and STRICK.
    
    INITCHECK or INITCHECK(LAX)
        If INITCHECK or INITCHECK(LAX) is in effect, the compiler
    will check for uninitialized data items and issue a warning
    message when a data item is used without being initialized.
    However, if a data item is initialized on at least one logical
    path to a statement, no warning message will be issued.
    
    INITCHECK(STRICT)
        The compiler will still check for uninitialized data items
    and issue a warning message if a data item is used without
    being initialized.  However, unlike INITCHECK(LAX),
    INITCHECK(STRICT) will issue a warning message about
    uninitialized data for a data item used in a statement
    unless the data item is initialized on all logical paths to
    the statement.
    
    Here is a simple example program to illustrate the differences
    in behavior between specifying LAX versus STRICT:
    
        Y and Z represent some data items, with no value clauses
    
        PROCEDURE DIVISION
        IF Y > 5
          MOVE 2 TO Z
        END-IF
        DISPLAY Z
    
    Z is initialized on one path to the DISPLAY statement but not
    the other, so LAX mode should display an INITCHECK warning
    message for Y only, while STRICT will also display an INITCHECK
    warning message for Z.
    

APAR Information

  • APAR number

    PH24413

  • Reported component name

    ENT COBOL FOR Z

  • Reported component ID

    5655EC600

  • Reported release

    620

  • Status

    CLOSED UR1

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt / Xsystem

  • Submitted date

    2020-04-14

  • Closed date

    2020-04-21

  • Last modified date

    2020-05-02

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

    PH22581

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

    UI69122 UI69123 UI69124

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 IGYCOPI  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 UI69122

       UP20/04/25 P F004

  • R621 PSY UI69123

       UP20/04/25 P F004

  • R622 PSY UI69124

       UP20/04/25 P F004

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

Document Information

Modified date:
12 December 2023