A fix is available
APAR status
Closed as program error.
Error description
While a negative zero is handled correctly by packed decimal instructions like CP (COMPARE DECIMAL), compiler optimization may may generate compares using logical instructions like CLC (COMPARE LOGICAL) under which a negative zero is not equal to a positive zero. This can lead to bad compares downstream of the computation, because zero literals are always generated as positive zero, even if they are -0 in the source.
Local fix
Compile at OPT(0) or ARCH(9).
Problem summary
**************************************************************** * USERS AFFECTED: Users of Enterprise COBOL compiling programs * * at OPT(1|2) and ARCH(10|11) that have * * COMPUTE statements with PACKED-DECIMAL or * * USAGE DISPLAY senders and receivers where * * the receiver is signed and has a different * * number of decimal places than the * * intermediate result and the result of the * * computation is zero. * **************************************************************** * PROBLEM DESCRIPTION: A zero value with a negative sign * * stored to a USAGE DISPLAY or PACKED * * DECIMAL receiver. * **************************************************************** * RECOMMENDATION: Apply the provided PTF * **************************************************************** The compiler was incorrectly updating its internal state so that it became unaware it had to ensure an intermediate result had a positive sign if its numeric value was 0 before being stored to the receiver.
Problem conclusion
The compiler was fixed to update its internal state and ensure that an intermediate result of zero has a positive sign before being stored to a signed receiver.
Temporary fix
Comments
APAR Information
APAR number
PH44352
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
2022-02-22
Closed date
2022-02-22
Last modified date
2022-03-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 IGYCLIBH IGYCLIBO IGYCLIBR IGYCLSTR IGYCLVL0 IGYCLVL1 IGYCLVL2 IGYCLVL3 IGYCLVL8 IGYCMALL 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 UI79455
UP22/03/01 P F202
R621 PSY UI79456
UP22/03/01 P F202
R622 PSY UI79457
UP22/03/01 P F202
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