IBM Support

PI63128: PERFORM WITH TEST AFTER GIVES INCORRECT/DIFFERENT RESULTS AT OPT(2)

A fix is available

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • Using Enterprise COBOL V5.1 with the OPTIMIZE(2) "PERFORM WITH
    TEST AFTER" statement gives different/incorrect results than at
    OPTIMIZE(0 or 1).
    

Local fix

Problem summary

  • ****************************************************************
    * USERS AFFECTED: Users of Enterprise COBOL V6.1 compiling     *
    *                 and running programs using compiler options  *
    *                 OPT(1|2), where the programs contain         *
    *                 PERFORM WITH TEST AFTER statements where     *
    *                 the compiler determines that the conditions  *
    *                 being tested are always true.                *
    *                                                              *
    ****************************************************************
    * PROBLEM DESCRIPTION: Incorrect output at runtime: After      *
    *                      PERFORMing a paragraph, execution may   *
    *                      fall through to the statement           *
    *                      following the PERFORMed paragraph,      *
    *                      instead of returning to the statement   *
    *                      following the PERFORM statement.        *
    *                                                              *
    ****************************************************************
    * RECOMMENDATION: Apply the provided PTF.                      *
    *                                                              *
    ****************************************************************
    Because the condition being tested in the PERFORM WITH TEST
    AFTER statement was always true, the compiler was updating its
    internal state to incorrectly indicate that execution would
    never flow from the PERFORMed paragraph to the PERFORM
    statement which referenced it. The compiler also incorrectly
    updated its internal state to indicate that execution would
    never flow from the PERFORMed paragraph to the statement
    following the PERFORM statement, causing execution to fall
    through to the statement following the PERFORMed paragraph.
    

Problem conclusion

  • The compiler was fixed to update its internal state correctly.
    

Temporary fix

Comments

APAR Information

  • APAR number

    PI63128

  • Reported component name

    ENT COBOL FOR Z

  • Reported component ID

    5655EC600

  • Reported release

    610

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt / Xsystem

  • Submitted date

    2016-05-26

  • Closed date

    2016-06-15

  • Last modified date

    2016-07-04

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

    PI59001

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

Modules/Macros

  •    IGYQCBE
    

Fix information

  • Fixed component name

    ENT COBOL FOR Z

  • Fixed component ID

    5655EC600

Applicable component levels

  • R610 PSY UI38707

       UP16/06/17 P F606

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":"BU048","label":"IBM Software"},"Product":{"code":"SS6SG3","label":"Enterprise COBOL for z\/OS"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"6.1","Edition":"","Line of Business":{"code":"LOB70","label":"Z TPS"}}]

Document Information

Modified date:
05 September 2024