IBM Support

PH29542: After PH13943, can no longer easily select the pre-PH13943 behavior of NUMCHECK(BIN)

A fix is available

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as new function.

Error description

  • PH13943 results in the checking of both COMP-4 and COMP-5 items
    when NUMCHECK(BIN) is in effect, to support migrating away from
    TRUNC(BIN).
    
    To get the prior behavior, it is now required to specify
    NUMCHECK(NOBIN) when using TRUNC(BIN), and NUMCHECK(BIN) with
    TRUNC(STD|OPT), which is a usability issue, and which can't be
    selected if NUMCHECK(BIN) is made fixed in the option
    customization module IGYCDOPT.
    

Local fix

  • None if NUMCHECK(BIN) is fixed, otherwise as noted in the
    description
    

Problem summary

  • ****************************************************************
    * USERS AFFECTED: Users of Enterprise COBOL 6.3 compiling      *
    *                 and running programs compiled with the       *
    *                 NUMCHECK(BIN) and TRUNC(BIN) options in      *
    *                 effect and where the program contains        *
    *                 data items of usage COMP, COMP-4 or          *
    *                 BINARY.                                      *
    ****************************************************************
    * PROBLEM DESCRIPTION: New function:                           *
    *                                                              *
    *                      A new option                            *
    *                      NUMCHECK(BIN(TRUNCBIN|NOTRUNCBIN))      *
    *                      is provided.                            *
    *                                                              *
    *                      When NUMCHECK(BIN(TRUNCBIN)) is in      *
    *                      effect, code is generated to            *
    *                      perform runtime checking of binary      *
    *                      data items to ensure that they do not   *
    *                      contain values that exceed their        *
    *                      PICTURE clause.  This code is           *
    *                      generated regardless of whether         *
    *                      or not the TRUNC(BIN) option is in      *
    *                      effect.                                 *
    *                                                              *
    *                      When NUMCHECK(BIN(NOTRUNCBIN)) is       *
    *                      in effect, no code is generated to      *
    *                      perform runtime checking of the         *
    *                      values in binary data items when        *
    *                      the TRUNC(BIN) option is in effect.     *
    *                                                              *
    *                      BIN(TRUNCBIN) is the default when       *
    *                      no suboption is specified for BIN       *
    *                      and is the same as the previous         *
    *                      NUMCHECK(BIN) option.                   *
    ****************************************************************
    * RECOMMENDATION: Apply the IBM-provided PTF.                  *
    ****************************************************************
    Some organizations want to enforce strict runtime checking of
    binary data items in their COBOL programs to ensure that they
    do not contain values that exceed the decimal precision
    specified in their corresponding PIC clause.  To do this an
    organization would make NUMCHECK(...,BIN,...) a fixed
    option in their installation default options, so that it
    cannot be overridden on individual compile jobs.
    Unfortunately, it may be necessary to also compile some
    programs with the TRUNC(BIN) option in effect, and in those
    cases it is normal for values to exceed the PICTURE clause,
    and so it might not be desirable to receive NUMCHECK
    warnings in this case, which would normally occur since
    NUMCHECK(BIN) results in checking for binary items
    independent of the value of the TRUNC(BIN) compiler option.
    

Problem conclusion

Temporary fix

Comments

  • The compiler was updated to provide support for new option
    NUMCHECK(BIN(TRUNCBIN|NOTRUNCBIN)).
    NUMCHECK(BIN(NOTRUNCBIN)) results in runtime checking
    for binary data items being avoided when the program is
    also compiled with the TRUNC(BIN) option in effect.
    
    For a more detailed description of changes related to the
    addition of these new options, 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

    PH29542

  • 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

    2020-09-15

  • Closed date

    2020-09-16

  • Last modified date

    2020-10-02

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

    PH26794

  • 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