IBM Support

PH40356: AVOID NUMCHECK FOR SENDER OF ZONED TO ZONED MOVE WHEN NUMCHECK(ZON(LAXREDEF)) IN EFFECT

A fix is available

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as new function.

Error description

  • This APAR introduces simplified syntax for the
    NUMCHECK(ZON(LAXREDEF|STRICTREDEF)) option.
    NUMCHECK(ZON(LAX|STRICT)) is now the preferred form.
    Additionally, the behavior of NUMCHECK(ZON(LAX)) has been
    enhanced to avoid numchecking the sender in a zoned to zoned
    move.  The sender data item will still be numchecked if it is
    subsequently used in a numeric context.
    

Local fix

  • N/A
    

Problem summary

  • ****************************************************************
    * USERS AFFECTED: Users of Enterprise COBOL 6.3 compiling      *
    *                 and running programs compiled with the       *
    *                 NUMCHECK(ZON(LAXREDEF|STRICTREDEF)) option   *
    *                 in effect and where the programs possibly    *
    *                 process invalid numeric data.                *
    ****************************************************************
    * PROBLEM DESCRIPTION: New function:                           *
    *                                                              *
    *                      1. The syntax                           *
    *                      NUMCHECK(ZON(LAXREDEF|STRICTREDEF))     *
    *                      has been deprecated and simplified to   *
    *                      NUMCHECK(ZON(LAX|STRICT)). The          *
    *                      previous syntax is tolerated for        *
    *                      backward compatibility.                 *
    *                                                              *
    *                      2. A new behavior has been added to     *
    *                      NUMCHECK(ZON(LAX)) such that when data  *
    *                      is moved from a zoned decimal sender    *
    *                      to a zoned decimal receiver in a MOVE   *
    *                      statement, NUMCHECK checking is not     *
    *                      performed on the sender.  If the        *
    *                      sender is later used in a numeric       *
    *                      context, however, it will be checked.   *
    ****************************************************************
    * RECOMMENDATION: Apply the IBM-provided PTF.                  *
    ****************************************************************
    Sometimes users initialize zoned decimal data items with SPACES
    or LOW-VALUES and move them to other zoned decimal data items,
    while making sure that if such an item is ever used in a
    numeric context that it is first checked to make sure it does
    not contain SPACES or LOW-VALUES. With this usage pattern it is
    desirable for NUMCHECK(ZON) to not complain about simply moving
    a zoned decimal data item to another zoned decimal data item
    since that in itself is not problematic, even when the sender
    in the move contains invalid data. A problem only occurs
    when such an item is actually used in a numeric context.
    

Problem conclusion

Temporary fix

Comments

  • The compiler was updated to provide support via the
    NUMCHECK(ZON(LAX)) option for  disabling NUMCHECK checking on
    the sender in a move of a zoned decimal to a zoned decimal.
    
    For a more detailed description of changes related to the
    addition of this new behavior, 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 -> NUMCHECK
    
    2) Customization Guide -> Enterprise COBOL compiler options
         -> NUMCHECK
    

APAR Information

  • APAR number

    PH40356

  • Reported component name

    ENT COBOL FOR Z

  • Reported component ID

    5655EC600

  • Reported release

    630

  • Status

    CLOSED UR1

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt / Xsystem

  • Submitted date

    2021-09-02

  • Closed date

    2021-09-27

  • Last modified date

    2021-10-15

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

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

    PH41362

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

Fix information

  • Fixed component name

    ENT COBOL FOR Z

  • Fixed component ID

    5655EC600

Applicable component levels

  • R630 PSY UI77327

       UP21/10/01 P F109

  • R631 PSY UI77328

       UP21/10/01 P F109

  • R632 PSY UI77329

       UP21/10/01 P F109

  • R63H PSY UI77330

       UP21/10/01 P F109

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