IBM Support

PI90580: On DIVIDE with REMAINDER, optimizer applies incorrect constraints to remainder, possible incorrect code elimination

A fix is available

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • The optimizer incorrectly reuses the constraints on the dividend
    for the remainder, which can lead to the incorrect elimination
    of subsequent code involving the remainder.
    

Local fix

  • Use OPT(0)
    

Problem summary

  • ****************************************************************
    * USERS AFFECTED: Users of Enterprise COBOL 6.2 compiling and  *
    *                 running programs at OPT(1|2) with            *
    *                 DIVIDE...GIVING REMAINDER statements where   *
    *                 the dividend has minimum value N and code    *
    *                 following the DIVIDE checks if the           *
    *                 remainder is either less than N or greater   *
    *                 remainder is either less than N or greater   *
    *                 than N.                                      *
    ****************************************************************
    * PROBLEM DESCRIPTION: Incorrect output at runtime: The        *
    *                      compiler incorrectly removes the check  *
    *                      that the remainder is less than N or    *
    *                      greater than N following the DIVIDE     *
    *                      statement.                              *
    ****************************************************************
    * RECOMMENDATION: Apply the provided PTF.                      *
    ****************************************************************
    The compiler assumes the remainder has the range of the
    dividend, which causes the compiler to remove the check that
    the remainder is less than N or greater than N following the
    DIVIDE statement.
    

Problem conclusion

  • The compiler was fixed to correctly set the range of values for
    the remainder, causing it to correctly recognize that the check
    for the remainder being less than N or greater than N couldn't
    be safely removed.
    

Temporary fix

Comments

APAR Information

  • APAR number

    PI90580

  • 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

    2017-11-22

  • Closed date

    2017-11-27

  • Last modified date

    2019-04-02

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

    PI85297

  • 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 IGYCLIBH IGYCLIBO IGYCLIBR IGYCLSTR IGYCLVL0
    IGYCLVL1 IGYCLVL2 IGYCLVL3 IGYCLVL8 IGYCMALL IGYCOB2  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  IGYSIDEK IGYZQDRV
    

Fix information

  • Fixed component name

    ENT COBOL FOR Z

  • Fixed component ID

    5655EC600

Applicable component levels

  • R620 PSY UP

       A

  • R621 PSY UP

       A

  • R622 PSY UI62021

       UP19/03/29 P F903

  • R62H PSY UP

       A

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