A fix is available
APAR status
Closed as program error.
Error description
Length of a multi-byte variable-length move can temporarily be off by one following a MOVE when using OPT(1/2). During the instruction sequence, the value of the variable contained in the register will be one less than it's actual value. If that same register is then carried over into the next instruction, the problem will surface. Below is an example of the sort of result that might be seen: 1321 MOVE EMV-DATA (WK-OFFSET:WK-LEN) TO EMV-DF31(1:WK-LEN) 1322 DISPLAY 'WK-OFFSET:' WK-OFFSET ' WK-LEN:' WK-LEN 1323 ADD WK-LEN TO WK-OFFSET 1324 DISPLAY 'WK-OFFSET:' WK-OFFSET ' WK-LEN:' WK-LEN Statement "ADD WK-LEN TO WK-OFFSET" gives different runtime results when compiled using OPT(0) and OPT(1). The OPT(0) program correctly yields 5 + 66 = 71. The OPT(1) program incorrectly yields 5 + 66 = 70. The display statements are using the correct value for WK-LEN loaded from memory, not the now-incorrect value in a register. Therefore, the display show the value of WK-LEN as 5, when its actual (incorrect) value in the register is 4 (which produces the incorrect result of 70.)
Local fix
Use compiler option OPT(0) as a workaround.
Problem summary
**************************************************************** * USERS AFFECTED: Users of programs compiled with Enterprise * * COBOL 5.1 with OPT(1) or OPT(2) compiler * * options compiling programs that have * * variable-length MOVEs * * * **************************************************************** * PROBLEM DESCRIPTION: Programs with variable-length MOVEs * * could use incorrect length when * * compiled with OPT(1) or OPT(2). * * * **************************************************************** * RECOMMENDATION: Apply the provided PTF. * * * **************************************************************** The compiler was not correctly calculating the length for some variable-length MOVE statements.
Problem conclusion
The compiler was changed to ensure that the length for variable-length MOVEs is always correct.
Temporary fix
Comments
APAR Information
APAR number
PI14476
Reported component name
ENT COBOL FOR Z
Reported component ID
5655W3200
Reported release
510
Status
CLOSED PER
PE
NoPE
HIPER
NoHIPER
Special Attention
NoSpecatt
Submitted date
2014-03-25
Closed date
2014-05-16
Last modified date
2014-06-03
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 UI18055
UP14/05/21 P F405
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:
03 June 2014