IBM Support

PH08709: THE OUTER PERFORM MAY INCORRECTLY RETURN TO THE WRONG LOCATION.

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 Vx.x compiling
    programs at OPT(1|2) with a PERFORM UNTIL statement that
    checks several conditions, where at least two of the
    conditions compare pairs of data items that are sequential
    in memory, the paragraph being PERFORMed is PERFORMed from
    at least two PERFORM statements, and the paragraph being
    PERFORMed ends with another PERFORM statement.
    
    PROBLEM SUMMARY: The optimizer was combining the sequential
    comparisons for the PERFORM UNTIL test into one larger compare,
    invalidating the compiler's internal state about which
    PERFORMed paragraphs could return to which PERFORM statements,
    causing the compiler to incorrectly conclude that one of the
    return points wouldn't be reached.
    
    CONCLUSION: The optimizer was fixed to not combine
    sequential comparisons when they were part of a
    PERFORM UNTIL statement.
    

Local fix

  • Compile at OPT(0)
    

Problem summary

  • ****************************************************************
    * USERS AFFECTED: Users of Enterprise COBOL V6.2 compiling     *
    *                 programs at OPT(1|2) with a PERFORM UNTIL    *
    *                 statement that checks several conditions,    *
    *                 where at least two of the conditions         *
    *                 compare pairs of data items that are         *
    *                 sequential in memory, the paragraph being    *
    *                 PERFORMed is PERFORMed from at least two     *
    *                 PERFORM statements, and the paragraph being  *
    *                 PERFORMed ends with another PERFORM          *
    *                 statement.                                   *
    ****************************************************************
    * PROBLEM DESCRIPTION: The outer PERFORM may incorrectly       *
    *                      return to the wrong location.           *
    ****************************************************************
    * RECOMMENDATION: Apply the provided PTF.                      *
    ****************************************************************
    The optimizer was combining the sequential comparisons for the
    PERFORM UNTIL test into one larger compare, invalidating the
    compiler's internal state about which PERFORMed paragraphs
    could return to which PERFORM statements, causing the compiler
    to incorrectly conclude that one of the return points wouldn't
    be reached.
    

Problem conclusion

  • The optimizer was fixed to not combine sequential comparisons
    when they were part of a PERFORM UNTIL statement.
    

Temporary fix

Comments

APAR Information

  • APAR number

    PH08709

  • 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

    2019-02-19

  • Closed date

    2019-03-20

  • Last modified date

    2019-04-08

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

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

    PH10132 PH10711

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 IGYCOB2  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 UI62019

       UP19/03/29 P F903

  • R621 PSY UI62020

       UP19/03/29 P F903

  • R622 PSY UI62021

       UP19/03/29 P F903

  • R62H PSY UI62022

       UP19/03/29 P F903

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"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"620","Edition":"","Line of Business":{"code":"LOB35","label":"Mainframe SW"}}]

Document Information

Modified date:
12 December 2023