IBM Support

PH52512: CORRECTING COMPILER BEHAVIOR WHEN ASSIGNING INVALID SIGN BITS TO NUMERIC RECEIVERS, WHICH LATER USED IN ARITHMETIC CALCULATIONS.

A fix is available

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • Enterprise COBOL 4 and Enterprise COBOL 6 behave differently
    compiling programs that assign invalid sign bits to numeric
    receivers, which later used in arithmetic calculations.
    

Local fix

Problem summary

  • ****************************************************************
    * USERS AFFECTED: Users of Enterprise COBOL 6.3 compiling      *
    *                 programs that contain COMPUTE statements     *
    *                 where the sender and receiver are both       *
    *                 USAGE DISPLAY, the sender contains invalid   *
    *                 zone bits, the compiler can prove the        *
    *                 COMPUTE has no effect (such as adding zero   *
    *                 or multiplying by one) and one of the        *
    *                 sender and receiver, but not both, are       *
    *                 unsigned                                     *
    ****************************************************************
    * PROBLEM DESCRIPTION: Enterprise COBOL 6 may set the sign     *
    *                      code without doing the computation,     *
    *                      preserving invalid zone bits, while     *
    *                      COBOL 4 will do the computation         *
    *                      regardless, converting to               *
    *                      PACKED-DECIMAL which gets rid of zone   *
    *                      bits and causes the receiver to have    *
    *                      all valid zone bits.                    *
    ****************************************************************
    * RECOMMENDATION: Use NUMCHECK to detect invalid data and      *
    *                 correct it. If you cannot, apply the         *
    *                 provided PTF and compile witn INVDATA        *
    ****************************************************************
    Enterprise COBOL optimizes the redundant COMPUTE statement for
    performance; it is faster to only set the sign than to convert
    to PACKED-DECIMAL and do the computation. Enterprise COBOL 4
    doesn't do this, so the two compilers handle invalid data in
    different ways.
    

Problem conclusion

  • The compiler was fixed so that with INVDATA specified,
    redundant computations still have a conversion to
    PACKED-DECIMAL and back to USAGE DISPLAY, clearing the invalid
    zone bits as Enterprise COBOL 4 does.
    

Temporary fix

Comments

APAR Information

  • APAR number

    PH52512

  • 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

    2023-02-09

  • Closed date

    2023-03-16

  • Last modified date

    2023-04-18

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

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

    PH53815 PH53971

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  IGYQCBE
    IGYQSPLT IGYZQEN6 IGYZQENU IGYZQJP6 IGYZQJPN
    

Fix information

  • Fixed component name

    ENT COBOL FOR Z

  • Fixed component ID

    5655EC600

Applicable component levels

  • R630 PSY UI90994

       UP23/03/28 P F303

  • R631 PSY UI90995

       UP23/03/28 P F303

  • R632 PSY UI90996

       UP23/03/28 P F303

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