A fix is available
APAR status
Closed as program error.
Error description
A dummy section of code that never executes can contain a static call statement. COBOL V4 discards the code, but resolves the program name constant and forwards it to the linkage editor for autolink. However, COBOL V5.2,OPT(1/2) discards the code and does not resolve the program name constant and does not forward it to the linkage editor for autolink. OPT(0) does function the same way as V4. The COBOL V5 compiler is being modified to resolve V-constants in discarded code at OPT(1/2). Coding Example: MAIN Module: CALL "COB10ENT" USING Z-FIELD <-- COB10ENT is an alternate DISPLAY "Z-FIELD: " Z-FIELD. entry point for COB10B1C GOBACK. <-- End of program. DUMMY-CALL SECTION. <-- Everything from here down is thrown away by all compilers DUMMY-CALL-00. because it never executes. CALL "COB10B1C". <-- COB V4 resolves the COB10B1C DUMMY-CALL-99. V-Constant and passes it to the EXIT. binder. V5 does not.
Local fix
There are 3 work-arounds: 1) Compile at OPT(0). 2) Compile at OPT(1/2) and utilize VOLATILE to retain the V-constant. 77 COB10B1C USAGE FUNCTION-POINTER VALUE NULL VOLATILE. ... DUMMY-CALL SECTION. IF COB10B1C not equal NULL then CALL "COB10B1C" END-IF. 3) Add in the appropriate binder control statements to allow the binder to handle the resolution.
Problem summary
**************************************************************** * USERS AFFECTED: Users of Enterprise COBOL V5.1 compiling * * programs that CALL the secondary ENTRY * * point of a program but not the main entry * * point, where an unreachable CALL to the * * main entry point has been added to allow * * the binder to resolve the called module. * * * * * **************************************************************** * PROBLEM DESCRIPTION: Binder terminates with message what * * IEW2456E 9207 SYMBOL XXXXX UNRESOLVED. * * MEMBER COULD NOT BE INCLUDED FROM THE * * DESIGNATED CALL LIBRARY. * * * **************************************************************** * RECOMMENDATION: Apply the provided PTF. * * * **************************************************************** The optimizer removed the unreachable call and didn't leave a reference to the call in the external symbol dictionary, so the binder was unable to resolve the call to the secondary entrypoint.
Problem conclusion
The compiler was fixed to always add all external CALLs to the external symbol dictionary.
Temporary fix
Comments
APAR Information
APAR number
PI61158
Reported component name
ENT COBOL FOR Z
Reported component ID
5655W3200
Reported release
510
Status
CLOSED PER
PE
NoPE
HIPER
NoHIPER
Special Attention
NoSpecatt / Xsystem
Submitted date
2016-04-20
Closed date
2016-04-27
Last modified date
2016-05-04
APAR is sysrouted FROM one or more of the following:
APAR is sysrouted TO one or more of the following:
Modules/Macros
IGYCBE
Fix information
Fixed component name
ENT COBOL FOR Z
Fixed component ID
5655W3200
Applicable component levels
R510 PSY UI37372
UP16/04/29 P F604
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"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"5.1","Edition":"","Line of Business":{"code":"LOB17","label":"Mainframe TPS"}},{"Business Unit":{"code":"BU054","label":"Systems w\/TPS"},"Product":{"code":"SG19M","label":"APARs - z\/OS environment"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"5.1","Edition":"","Line of Business":{"code":"","label":""}}]
Document Information
Modified date:
04 May 2016