IBM Support

PH31500: NEW FUNCTION: Add support for INVDATA option for improved compatibility with preV5 NUMPROC(MIG) option. Deprecate ZONEDATA

A fix is available

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as new function.

Error description

  • Investigating the possibility of accommodating comparable
    behavior with V4.2 for arithmetic operations in V6.2 with known
    invalid data.
    
    When using NUMPROC(MIG) in V4.2, the correct migration choice
    for V6.2 with known invalid data is NUMPROC(NOPFD),
    ZONEDATA(MIG).
    

Local fix

  • N/A
    

Problem summary

  • ****************************************************************
    * USERS AFFECTED: Users of Enterprise COBOL 6.2 compiling      *
    *                 and running programs compiled with the       *
    *                 ZONEDATA(NOPFD | MIG) option in effect and   *
    *                 where the programs possibly process          *
    *                 invalid numeric data.                        *
    ****************************************************************
    * PROBLEM DESCRIPTION: New function:                           *
    *                                                              *
    *                      A new option is provided:               *
    *                                                              *
    *                      NOINVDATA |                             *
    *                      INVDATA((NOFORCENUMCMP|FORCENUMCMP,     *
    *                               CLEANSIGN|NOCLEANSIGN))        *
    *                                                              *
    *                      The purpose of this option, which       *
    *                      supersedes the now-deprecated ZONEDATA  *
    *                      option, is to allow users fine-grained  *
    *                      control over handling of invalid        *
    *                      numeric data in their programs. This    *
    *                      can help programs behave in a way that  *
    *                      is more compatible with the behavior    *
    *                      of programs compiled with V4 (or        *
    *                      earlier versions) of the COBOL          *
    *                      compiler.                               *
    *                                                              *
    *                      The default is NOINVDATA, indicating    *
    *                      that the program does not process any   *
    *                      invalid data.                           *
    *                                                              *
    *                      When INVDATA is specified with no       *
    *                      suboptions, it defaults to              *
    *                      INVDATA(NOFORCENUMCMP,CLEANSIGN)        *
    *                      which is what users migrating from V4   *
    *                      or earlier versions of the compiler     *
    *                      should use when their programs contain  *
    *                      invalid data and they were using        *
    *                      option NUMPROC(PFD | NOPFD) in those    *
    *                      older versions.  For users who have     *
    *                      invalid data in their programs and      *
    *                      were compiling with the NUMPROC(MIG)    *
    *                      option in effect, they should use       *
    *                      INVDATA(FORCENUMCMP,NOCLEANSIGN) to     *
    *                      achieve the most compatible behavior.   *
    *                                                              *
    *                      When INVDATA(FORCENUMCMP) is in         *
    *                      effect, the compiler performs           *
    *                      comparison of USAGE DISPLAY numeric     *
    *                      data items in  a way that guarantees    *
    *                      that invalid zone nibbles do not        *
    *                      influence the result. This behavior     *
    *                      was available using the NUMPROC(MIG)    *
    *                      option in V4 and earlier versions of    *
    *                      the COBOL compiler.                     *
    *                                                              *
    *                      When INVDATA(NOFORCENUMCMP) is in       *
    *                      effect, the compiler generates          *
    *                      instructions for comparison of USAGE    *
    *                      DISPLAY decimal data in the same        *
    *                      manner as COBOL V4 (or earlier          *
    *                      versions) when using the                *
    *                      NUMPROC(NOPFD | PFD) option in COBOL    *
    *                      V4 (or earlier versions).               *
    *                                                              *
    *                      When INVDATA(NOCLEANSIGN) is in         *
    *                      effect, sign nibbles for unsigned       *
    *                      USAGE DISPLAY, COMP-3 and               *
    *                      PACKED-DECIMAL data items will not      *
    *                      be set to x'F' on input to comparison   *
    *                      or arithmetic operations, increasing    *
    *                      the likliehood of a S0C7 ABEND if the   *
    *                      sign nibble contains invalid data.      *
    *                      This behavior was available using the   *
    *                      NUMPROC(MIG) option in V4 and earlier   *
    *                      versions of the COBOL compiler.         *
    ****************************************************************
    * RECOMMENDATION: Apply the provided PTF.                      *
    ****************************************************************
    In the past, users were instructed to use the ZONEDATA(MIG)
    option if they used the NUMPROC(MIG) option in V4 (or earlier
    versions) of the compiler.  Unfortunately, ZONEDATA(MIG) did
    not implement one of the NUMPROC(MIG) behaviors, which was to
    avoid setting the sign nibble of unsigned zoned/packed data
    items to x'F' on input to arithmetic and compare operations.
    This increased the likliehood of a S0C7 ABEND in programs that
    processed invalid data. Some users would like to be able to
    enable this behavior in COBOL V6. On the other hand, many
    existing users of ZONEDATA(MIG) are happy with the current
    behavior and do not want the ABEND.  Therefore, this new
    behavior has been enabled under a new option,
    INVDATA(NOCLEANSIGN), where the new INVDATA option supersedes
    the ZONEDATA option and gives users fine-grained control over
    invalid data processing and allows them to enable behavior
    compatible with COBOL V6's ZONEDATA(MIG) option and also
    the NUMPROC(MIG) option in V4 and earlier versions of
    the COBOL compiler.
    

Problem conclusion

Temporary fix

Comments

  • The compiler was updated to provide support for the new
    INVDATA option.
    
    For a more detailed description of changes related to the
    addition of this new option, please refer to the following
    sections in the Enterprise COBOL for z/OS 6.x Knowledge Center
    online:
    
    1) Programming Guide -> Compiling and debugging your program
         -> Compiler Options -> INVDATA
    
    2) Customization Guide -> Enterprise COBOL compiler options
         -> INVDATA
    

APAR Information

  • APAR number

    PH31500

  • Reported component name

    ENT COBOL FOR Z

  • Reported component ID

    5655EC600

  • Reported release

    620

  • Status

    CLOSED UR1

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt / Xsystem

  • Submitted date

    2020-11-10

  • Closed date

    2021-04-29

  • Last modified date

    2021-06-01

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

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

    PH37328

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
    IGYCOPT  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 UI75163

       UP21/05/04 P F105

  • R621 PSY UI75164

       UP21/05/04 P F105

  • R622 PSY UI75165

       UP21/05/04 P F105

  • R62H PSY UI75166

       UP21/05/04 P F105

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