A fix is available
APAR status
Closed as program error.
Error description
Users of the Enterprise COBOL V5 or above compiler who are compiling and running programs with TRUNC(BIN) that also contain a MOVE statement with an unsigned, 32-bit sender with usage BINARY, COMP, or COMP-4, and an alphanumeric receiver may receive incorrect output. With TRUNC(BIN), the compiler is generating code that converts from 32-bit binary to packed directly, without going to 64-bit binary first. This is incorrect because it assumes that the COMP field won't ever have a value exceeding the picture clause, despite that being explicitly allowed by the use of TRUNC(BIN). The value of the alphanumeric receiver in the MOVE statement will be incorrect, because the sender was inadvertently treated as signed.
Local fix
Redefine the affected sender in the MOVE statement as usage COMP-5, instead of usage COMP or COMP-4.
Problem summary
**************************************************************** * USERS AFFECTED: Users of the Enterprise COBOL V6.2 compiler * * who are compiling and running programs with * * TRUNC(BIN) that also contain a MOVE * * statement with an unsigned, 32-bit sender * * with usage BINARY, COMP, or COMP-4, and an * * alphanumeric receiver. * **************************************************************** * PROBLEM DESCRIPTION: Incorrect output: The value of the * * alphanumeric receiver in the MOVE * * statement will be incorrect, because * * the sender was inadvertently treated * * as signed. * **************************************************************** * RECOMMENDATION: Apply the provided PTF. * **************************************************************** With TRUNC(BIN), the compiler is generating code that converts from 32-bit binary to packed directly, without going to 64-bit binary first. This is incorrect because it assumes that the COMP field won't ever have a value exceeding the picture clause despite that being explicitly allowed by the use of TRUNC(BIN).
Problem conclusion
The compiler has been modified to support the correct behavior for handling unsigned 32-bit COMP, compiled with TRUNC(BIN). The sender is now converted to 64-bit binary first, then converted to packed, rather than going from 32-bit binary to packed directly.
Temporary fix
Comments
APAR Information
APAR number
PI97623
Reported component name
ENT COBOL FOR Z
Reported component ID
5655EC600
Reported release
620
Status
CLOSED PER
PE
NoPE
HIPER
NoHIPER
Special Attention
NoSpecatt / Xsystem
Submitted date
2018-05-04
Closed date
2018-05-28
Last modified date
2018-06-04
APAR is sysrouted FROM one or more of the following:
PI97449
APAR is sysrouted TO one or more of the following:
Modules/Macros
IGY8RWTU IGYCASMB IGYCCBE IGYCCCRT IGYCCICS IGYCCSRV IGYCDGEN IGYCDIAG IGYCDMAP IGYCDOPT 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 IGYCOPT 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 UI56120
UP18/06/01 P F805
R621 PSY UI56121
UP18/06/01 P F805
R622 PSY UI56122
UP18/06/01 P F805
R62H PSY UI56123
UP18/06/01 P F805
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":"620","Edition":"","Line of Business":{"code":"LOB35","label":"Mainframe SW"}}]
Document Information
Modified date:
12 December 2023