IBM Support

PH28544: 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.2 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 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

    PH28544

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

  • Closed date

    2020-08-18

  • Last modified date

    2020-09-01

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

    PH26794

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

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