A fix is available
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:
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