IBM Support

PH28379: WITH ZONEDATA(MIG), THE COMPILER INCORRECTLY FIXES THE SIGN NIBBLE FOR UNSIGNED ZONED/PACKED DECIMAL DATA ITEMS

A fix is available

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • When ZONEDATA(MIG) was in effect, the compiler was generating
    code to clean/fix the sign nibble of unsigned packed and zone
    decimal data items prior to them being used as input to
    compare, add, subtract, multiply and divide operations.  This
    was incorrect because ZONEDATA(MIG) is meant to provide
    compatibility with the NUMPROC(MIG) option in pre-V5 versions
    of the Enterprise COBOL compiler and that option prevents that
    cleaning/fixing from taking place.
    

Local fix

  • Use the NUMCHECK(ZON,PAC) option to detect invalid zoned and
    packed decimal data at runtime.
    

Problem summary

  • ****************************************************************
    * USERS AFFECTED: Users of Enterprise COBOL 6.2 compiling and  *
    *                 running programs with the ZONEDATA(MIG)      *
    *                 option in effect, and where the program      *
    *                 contains unsigned zoned or packed decimal    *
    *                 data items that may contain an invalid sign  *
    *                 nibble.                                      *
    ****************************************************************
    * PROBLEM DESCRIPTION: Unexpected output.                      *
    *                      The COBOL program will silently clean   *
    *                      the sign nibble of the data items       *
    *                      prior to them being used as input to a  *
    *                      compare operation. This is different    *
    *                      from the behavior of pre-V5 versions    *
    *                      of the Enterprise COBOL compiler for    *
    *                      programs compiled with the              *
    *                      NUMPROC(MIG) option, where zoned and    *
    *                      packed decimal data items with an       *
    *                      invalid sign nibble would typically     *
    *                      result in a S0C7 abend when used as an  *
    *                      operand in a comparison.                *
    ****************************************************************
    * RECOMMENDATION: Apply the provided PTF.                      *
    ****************************************************************
    The compiler was generating code to clean the sign nibble of
    unsigned packed and zone decimal data items prior to them being
    used as input to a compare operation, even when the
    ZONEDATA(MIG) option was in effect,
    even though ZONEDATA(MIG) is meant to provide compatibility
    with the NUMPROC(MIG) option in pre-V5 versions of the
    Enterprise COBOL compiler and that option prevents that
    cleaning from taking place.
    

Problem conclusion

  • The compiler was updated to avoid generating code to clean the
    sign nibble of unsigned zoned and packed decimal data items
    prior to them being used as input to a compare operation when
    the ZONEDATA(MIG) option is in effect.
    

Temporary fix

Comments

APAR Information

  • APAR number

    PH28379

  • 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-08-11

  • Closed date

    2020-08-20

  • Last modified date

    2020-09-15

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

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

    PH29540

Modules/Macros

  • IGY8CICS IGY8RWRD 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
    IGYCOB2  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  IGYZQDRV
    IGYZQENU IGYZQJPN
    

Fix information

  • Fixed component name

    ENT COBOL FOR Z

  • Fixed component ID

    5655EC600

Applicable component levels

  • R620 PSY UI71111

       UP20/08/29 P F008

  • R621 PSY UI71112

       UP20/08/29 P F008

  • R622 PSY UI71113

       UP20/08/29 P F008

  • R62H PSY UI71114

       UP20/08/29 P F008

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