IBM Support

PH26709: THE COMPILER'S INTERNAL STATE WAS INCORRECT AFTER OPTIMIZING THEIF-ELSE STATEMENT, CAUSING THE COMPILER TO ABORT.

A fix is available

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • USERS AFFECTED: Users of Enterprise COBOL V6.x compiling
    programs at OPT(1|2) that contain an IF-ELSE statement that
    compares a group data item to SPACES where if the IF branch is
    taken, the only COBOL statement is to assign a value to a
    receiver, and when the ELSE branch is
    taken, the only COBOL statement is to assign a different value
    to the same receiver as in the IF branch.
    
    PROBLEM DESCRIPTION: Compiler abend with message MSGIGYCB7104-U.
    Internal error while compiling function XXXXX. Failed assertion
    on
    IBMRegisterDependency.hpp:442
    
    RECOMMENDATION TO CUSTOMER: Apply the provided PTF
    
    PROBLEM SUMMARY: The compiler's internal state was incorrect
    after optimizing the IF-ELSE statement, causing the compiler to
    abort in a later optimization when the incorrect state was
    detected.
    
    CONCLUSION: The compiler was fixed to have the correct internal
    state after the earlier optimization, allowing the later
    optimization to
    safely proceed.
    

Local fix

  • Compile at OPT(0)
    

Problem summary

  • ****************************************************************
    * USERS AFFECTED: Users of Enterprise COBOL V6.3 compiling     *
    *                 programs at OPT(1|2) that contain an         *
    *                 IF-ELSE                                      *
    *                 statement that compares a group data item    *
    *                 to                                           *
    *                 SPACES where                                 *
    *                 if the IF branch is taken, the               *
    *                 only COBOL statement is to assign a value    *
    *                 to a receiver, and when the ELSE branch is   *
    *                 taken, the only COBOL statement is to        *
    *                 assign a different value to the same         *
    *                 receiver as in the IF branch.                *
    ****************************************************************
    * PROBLEM DESCRIPTION: Compiler abend with message             *
    *                      MSGIGYCB7104-U. Internal error while    *
    *                      compiling                               *
    *                      function XXXXX. Failed                  *
    *                      assertion on                            *
    *                      IBMRegisterDependency.hpp:442           *
    ****************************************************************
    * RECOMMENDATION: Apply the provided PTF.                      *
    ****************************************************************
    The compiler's internal state was incorrect after optimizing the
    IF-ELSE statement, causing the compiler to abort in a later
    optimization when the incorrect state was detected.
    

Problem conclusion

  • The compiler was fixed to have the correct internal state after
    the earlier optimization, allowing the later optimization to
    safely proceed.
    

Temporary fix

Comments

APAR Information

  • APAR number

    PH26709

  • 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

    2020-06-23

  • Closed date

    2020-07-16

  • Last modified date

    2020-10-15

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

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

    PH30621

Modules/Macros

  • IGY8CICS IGY8RWRD 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 IGYCOB2  IGYCOB2E
    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  IGYQSPLT IGYZQEN6
    IGYZQENU IGYZQJP6 IGYZQJPN
    

Fix information

  • Fixed component name

    ENT COBOL FOR Z

  • Fixed component ID

    5655EC600

Applicable component levels

  • R630 PSY UI70598

       UP20/07/24 P F007

  • R631 PSY UI70599

       UP20/07/24 P F007

  • R632 PSY UI70600

       UP20/07/24 P F007

  • R63H PSY UI70601

       UP20/07/24 P F007

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