IBM Support

PH00616: ENHANCE ZONEDATA(NOPFD|MIG) TO HANDLE COMP-3 DATA THAT DOESN'T FIT IN PICTURE CLAUSE WHEN USED IN USAGE-DISPLAY COMPUTATION

A fix is available

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • When moving invalid COMP-3 data, where the value exceeds the
    picture clause, to a USAGE DISPLAY receiver and then using the
    receiver in a subsequent computation, the compiler was
    recognizing that the use of the receiver in the subsequent
    computation was coming from a COMP-3 source, so the source
    value, with the invalid leftmost digit, was reused in the
    computation.
    

Local fix

  • Compile at OPT(0)
    

Problem summary

  • ****************************************************************
    * USERS AFFECTED: Users of Enterprise COBOL V6.2 compiling     *
    *                 programs at OPT(1|2) that MOVE a COMP-3      *
    *                 data item with an even number of digits      *
    *                 specified in the picture clause to a USAGE   *
    *                 DISPLAY data item with the same number of    *
    *                 digits in the picture clause as the sender,  *
    *                 where the leftmost four bits of the sender   *
    *                 are not zero, and then use the USAGE         *
    *                 DISPLAY data item in a subsequent            *
    *                 computation.                                 *
    ****************************************************************
    * PROBLEM DESCRIPTION: Incorrect results.                      *
    ****************************************************************
    * RECOMMENDATION: Apply the provided PTF and compile using     *
    *                 ZONEDATA(MIG) (if you previ ously used       *
    *                 NUMPROC(MIG) in COBOL V4.2/earlier) or       *
    *                 ZONEDATA(NOPFD) otherwise, to indicate to    *
    *                 the compiler that you want to tolerate       *
    *                 invalid data. Alternately, correct the       *
    *                 invalid data.                                *
    ****************************************************************
    When moving invalid COMP-3 data, where the value exceeds the
    picture clause, to a USAGE DISPLAY receiver and then using the
    receiver in a subsequent computation, the compiler was
    recognizing that the use of the receiver in the subsequent
    computation was coming from a COMP-3 source, so the source
    value, with the invalid leftmost digit, was reused in the
    computation.
    

Problem conclusion

  • The compiler was fixed, when using ZONEDATA(NOPFD|MIG), to use
    the USAGE DISPLAY value rather than the COMP-3 value, ensuring
    that the invalid leftmost digit was ignored in subsequent
    computations. Not reusing the COMP-3 value leads to slightly
    worse runtime performance, so this should only be done when
    invalid data is intentionally tolerated rather than being
    corrected.
    

Temporary fix

Comments

APAR Information

  • APAR number

    PH00616

  • 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

    2018-07-17

  • Closed date

    2018-07-18

  • Last modified date

    2018-10-02

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

    PI97996

  • 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 IGYCOB2E 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  IGYWIVP1 IGYWIVP2 IGYZQDRV
    IGYZQENU IGYZQJPN
    

Fix information

  • Fixed component name

    ENT COBOL FOR Z

  • Fixed component ID

    5655EC600

Applicable component levels

  • R620 PSY UI57342

       UP18/08/02 P F807

  • R621 PSY UI58271

       UP18/10/02 P F809

  • R622 PSY UI57344

       UP18/07/31 P F807

  • R62H PSY UI58273

       UP18/09/06 P F809

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