IBM Support

PH29821: Despite ZONEDATA(NOPFD|MIG) COMPUTE ... ROUNDED fails 0C7 on data with a bad sign

A fix is available

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • The ZONEDATA(NOPFD|MIG) options are intended to fix up the sign
    of a zoned decimal source field, but in the case of a simple
    COMPUTE ... ROUNDED did not do so, resulting in an 0C7 on the
    SHIFT AND ROUND DECIMAL (SRP) instruction used to do the
    rounding.
    

Local fix

  • Only for an unsigned COMPUTE ... ROUNDED, adding zero to the
    source field will resolve the problem.
    

Problem summary

  • ****************************************************************
    * USERS AFFECTED: Users of Enterprise COBOL 6.2 compiling      *
    *                 programs with COMPUTE X = ROUNDED Y          *
    *                 statements where the sender is an unsigned   *
    *                 USAGE DISPLAY and the sender contains an     *
    *                 invalid sign code at runtime.                *
    ****************************************************************
    * PROBLEM DESCRIPTION: Program will abend with an S0C7 abend.  *
    ****************************************************************
    * RECOMMENDATION: Identify the problem by compiling with       *
    *                 NUMCHECK and testing thoroughly, and         *
    *                 correct the invalid data.                    *
    *                                                              *
    *                 If that cannot be done as part of a          *
    *                 migration to COBOL 6, then apply the         *
    *                 provided PTF and compile with                *
    *                 ZONEDATA(NOPFD) or ZONEDATA(MIG). Clients    *
    *                 who used NUMPROC(MIG) in COBOL 4 should use  *
    *                 ZONEDATA(MIG) in COBOL 6 if they do not fix  *
    *                 the invalid data; clients who used           *
    *                 NUMPROC(NOPFD|PFD) in COBOL 4 should use     *
    *                 ZONEDATA(NOPFD) in COBOL 6.                  *
    ****************************************************************
    The compiler was assuming that the sign code was valid, and
    decided the sign code did not need to be forced to x'F' before
    the rounding operation. The SRP instruction used to carry out
    the round requires a valid sign code; finding an invalid sign
    code, the program abended with a S0C7 data exception.
    

Problem conclusion

  • The compiler will continue to remove the instruction to set the
    sign code to x'F' under ZONEDATA(PFD), as in that case, the
    compiler is being told to assume all data is valid. Under
    ZONEDATA(NOPFD|MIG), the compiler was changed to force the sign
    code to x'F' before the SRP.
    

Temporary fix

Comments

APAR Information

  • APAR number

    PH29821

  • 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

    2020-09-23

  • Closed date

    2020-10-07

  • Last modified date

    2020-11-10

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

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

    PH30274 PH31472

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 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  IGYMSGXT IGYQCBE  IGYZQDRV IGYZQENU IGYZQJPN
    

Fix information

  • Fixed component name

    ENT COBOL FOR Z

  • Fixed component ID

    5655EC600

Applicable component levels

  • R620 PSY UI71972

       UP20/10/10 P F010

  • R621 PSY UI71973

       UP20/10/10 P F010

  • R622 PSY UI71974

       UP20/10/10 P F010

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":"620","Line of Business":{"code":"LOB35","label":"Mainframe SW"}}]

Document Information

Modified date:
12 December 2023