IBM Support

PH43221: At ARCH(10|11) OPT(1|2) a computation may produce a negative zero, causing problems with subsequent compares

A fix is available

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • While a negative zero is handled correctly by packed decimal
    instructions like CP (COMPARE DECIMAL), compiler optimization
    may may generate compares using logical instructions like CLC
    (COMPARE LOGICAL) under which a negative zero is not equal to a
    positive zero. This can lead to bad compares downstream of the
    computation, because zero literals are always generated as
    positive zero, even if they are -0 in the source.
    

Local fix

  • Compile at OPT(0) or ARCH(9).
    

Problem summary

  • ****************************************************************
    * USERS AFFECTED: Users of Enterprise COBOL compiling programs *
    *                  at OPT(1|2) and ARCH(10|11) that have       *
    *                 COMPUTE statements with PACKED-DECIMAL or    *
    *                 USAGE DISPLAY senders and receivers where    *
    *                 the receiver is signed and has a different   *
    *                 number of decimal places than the            *
    *                 intermediate result and the result of the    *
    *                 computation is zero.                         *
    ****************************************************************
    * PROBLEM DESCRIPTION: A zero value with a negative sign       *
    *                      stored to a USAGE DISPLAY or PACKED     *
    *                      DECIMAL receiver.                       *
    ****************************************************************
    * RECOMMENDATION: Apply the provided PTF                       *
    ****************************************************************
    The compiler was incorrectly updating its internal state so
    that it became unaware it had to ensure an intermediate result
    had a positive sign if its numeric value was 0 before being
    stored to the receiver.
    

Problem conclusion

  • The compiler was fixed to update its internal state and ensure
    that an intermediate result of zero has a positive sign before
    being stored to a signed receiver.
    

Temporary fix

Comments

APAR Information

  • APAR number

    PH43221

  • 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

    2022-01-10

  • Closed date

    2022-03-15

  • Last modified date

    2022-04-01

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

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

    PH44352

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 IGYCLIBR IGYCLSTR IGYCLVL0 IGYCLVL1 IGYCLVL2
    IGYCLVL3 IGYCLVL8 IGYCMALL 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  IGYQCB
    IGYQCBE  IGYQCBG  IGYQSPLT IGYTCARA IGYTSALE IGYZQEN6 IGYZQENU
    IGYZQJP6 IGYZQJPN
    

Fix information

  • Fixed component name

    ENT COBOL FOR Z

  • Fixed component ID

    5655EC600

Applicable component levels

  • R630 PSY UI79731

       UP22/03/26 P F203

  • R631 PSY UI79732

       UP22/03/26 P F203

  • R632 PSY UI79733

       UP22/03/26 P F203

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