A fix is available
APAR status
Closed as new function.
Error description
Enhancement to the INITCHECK option to find all possible "used without being initialized" field
Local fix
New Function
Problem summary
**************************************************************** * USERS AFFECTED: All users of the Enterprise COBOL V6 * * compiler who are compiling programs with the * * INITCHECK compiler option and who would * * like to expand the scope of data items that * * are flagged as uninitialized. * **************************************************************** * PROBLEM DESCRIPTION: New function: The current version of * * the INITCHECK compiler option will only * * issue a warning message for data items * * that are uninitialized on any and all * * logic paths in the source program, * * where it is referenced. * **************************************************************** * RECOMMENDATION: Apply the provided PTF. * **************************************************************** The way that the INITCHECK option is implemented in the compiler, it will not identify a data item that may be initialized on one path in a logic statement, but not on other paths, as uninitialized. Customers have requested that this function be enhanced to allow for flagging data items that may be initialized on one path in a given logic, but not on another path, as being uninitialized.
Problem conclusion
Temporary fix
Comments
The INITCHECK compiler option has been improved to support two new sub options LAX and STRICK. INITCHECK or INITCHECK(LAX) If INITCHECK or INITCHECK(LAX) is in effect, the compiler will check for uninitialized data items and issue a warning message when a data item is used without being initialized. However, if a data item is initialized on at least one logical path to a statement, no warning message will be issued. INITCHECK(STRICT) The compiler will still check for uninitialized data items and issue a warning message if a data item is used without being initialized. However, unlike INITCHECK(LAX), INITCHECK(STRICT) will issue a warning message about uninitialized data for a data item used in a statement unless the data item is initialized on all logical paths to the statement. Here is a simple example program to illustrate the differences in behavior between specifying LAX versus STRICT: Y and Z represent some data items, with no value clauses PROCEDURE DIVISION IF Y > 5 MOVE 2 TO Z END-IF DISPLAY Z Z is initialized on one path to the DISPLAY statement but not the other, so LAX mode should display an INITCHECK warning message for Y only, while STRICT will also display an INITCHECK warning message for Z.
APAR Information
APAR number
PH22581
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-02-24
Closed date
2020-05-20
Last modified date
2020-06-01
APAR is sysrouted FROM one or more of the following:
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 IGYCOB2E 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 UI69624
UP20/05/27 P F005
R631 PSY UI69625
UP20/05/27 P F005
R632 PSY UI69626
UP20/05/27 P F005
R63H PSY UI69627
UP20/05/27 P F005
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