IBM Support

PH48674: THE ON SIZE ERROR CLAUSE MAY NOT BE EXECUTED.

A fix is available

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • The optimizer was incorrectly deciding that the addition of two
    18-digit BINARY data items could be done as a binary addition
    instead of a packed-decimal addition. This is incorrect as the
    result could be 19 digits, and some 19-digit values cannot be
    represented in a 64-bit binary data item. Because of this
    decision, the code that was generated would add the two 18-digit
     data items together and truncate after the ON SIZE ERROR check.
     Prior behaviour (that of COBOL 4, and without doing this
    optimization) would be to truncate the data items before they
    were added together.
    

Local fix

  • N/A
    

Problem summary

  • ****************************************************************
    * USERS AFFECTED: Users of Enterprise COBOL 6.4 compiling      *
    *                 programs at ARCH(11) or lower with           *
    *                 TRUNC(STD|OPT) that add two 18-digit BINARY  *
    *                 data items together with an ON SIZE ERROR    *
    *                 clause where the result is 19 digits.        *
    ****************************************************************
    * PROBLEM DESCRIPTION: The ON SIZE ERROR clause may not be     *
    *                      executed.                               *
    ****************************************************************
    * RECOMMENDATION: Apply the provided PTF                       *
    ****************************************************************
    The optimizer was incorrectly deciding that the addition of two
    18-digit BINARY data items could be done as a binary addition
    instead of a packed-decimal addition. This is incorrect as the
    result could be 19 digits, and some 19-digit values cannot be
    represented in a 64-bit binary data item. Because of this
    decision, the code that was generated would add the two
    18-digit data items together and truncate after the ON
    SIZE ERROR check. Prior behaviour (that of COBOL 4, and without
    doing this optimization) would be to truncate the data items
    before they were added together.
    

Problem conclusion

  • The compiler was fixed to avoid the above optimization,
    truncating the data items to 18 digits before they were added
    together, producing the same result as COBOL 4.
    

Temporary fix

Comments

APAR Information

  • APAR number

    PH48674

  • Reported component name

    ENT COBOL FOR Z

  • Reported component ID

    5655EC600

  • Reported release

    640

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt / Xsystem

  • Submitted date

    2022-08-12

  • Closed date

    2022-08-18

  • Last modified date

    2022-11-01

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

    PH47833

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

Modules/Macros

  • IGY8RWTU IGYADXIT 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 IGYCJBLD IGYCJBLS IGYCJDM1 IGYCJDM2
    IGYCJDM3 IGYCJDM4 IGYCJDM5 IGYCJDM6 IGYCJDMB IGYCJDMR IGYCJGEN
    IGYCLIBR IGYCLSTR IGYCLVL0 IGYCLVL1 IGYCLVL2 IGYCLVL3 IGYCLVL8
    IGYCMALL 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 IGYISMKD IGYMSGE  IGYMSGK  IGYMSGT  IGYMSGXT
    IGYQC    IGYQCB   IGYQCBE  IGYQCBG  IGYQSPLT IGYWACPT IGYWALOC
    IGYWAPLY IGYWC    IGYWCL   IGYWCLG  IGYWDDEF IGYWDOPT IGYWIVP1
    IGYWIVP2 IGYWRECV IGYWRWD  IGYWSMPE IGYWUOPT IGYWZFS  IGYZQEN6
    IGYZQENU IGYZQJP6 IGYZQJPN
    

Fix information

  • Fixed component name

    ENT COBOL FOR Z

  • Fixed component ID

    5655EC600

Applicable component levels

  • R640 PSY UP

       A

  • R641 PSY UP

       A

  • R642 PSY UI82932

       UP22/10/28 P F210

  • R64H 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"},"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"640","Line of Business":{"code":"LOB35","label":"Mainframe SW"}}]

Document Information

Modified date:
12 December 2023