IBM Support

PH29540: 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.3 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 IBM-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

    PH29540

  • 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

    2020-09-15

  • Closed date

    2020-09-16

  • Last modified date

    2020-10-02

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

    PH28379

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

Fix information

  • Fixed component name

    ENT COBOL FOR Z

  • Fixed component ID

    5655EC600

Applicable component levels

  • R630 PSY UI71591

       UP20/09/27 P F009

  • R631 PSY UI71592

       UP20/09/26 P F009

  • R632 PSY UI71593

       UP20/09/26 P F009

  • R63H PSY UI71594

       UP20/09/26 P F009

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