A fix is available
APAR status
Closed as program error.
Error description
When using optimization, an internal integer to float double conversion is causing values to be stored at one memory location, but loaded from another location in memory. For example, in the following listing output, integer 'test' is stored on the stack via gr1, but loaded later in the program using an offset of gr31: 0| 00F608 std F88100B0 1 ST8 test(gr1,176)=gr4 ... 0| 0274CC lwa E89F80F2 1 L4A gr4=test(gr31,-32528)
Local fix
Use a lower optimization level.
Problem summary
USERS AFFECTED: Users that have automatic variables/parameters in their code may be affected by this issue. PROBLEM DESCRIPTION: At macro expansion time tje compiler has to know what automatic variables/parameters are accessible directly from the stack pointer and which ones may be too far away. There is a fairly small number of temps that might be used by macro expansion. The compiler was not taking those into account.
Problem conclusion
The compiler has been fixed to take into account the small number of temps that get generated.
Temporary fix
Comments
APAR Information
APAR number
LI78476
Reported component name
XL C/C++ FOR LI
Reported component ID
5725C7300
Reported release
D10
Status
CLOSED PER
PE
NoPE
HIPER
NoHIPER
Special Attention
NoSpecatt
Submitted date
2015-02-25
Closed date
2015-02-25
Last modified date
2015-02-25
APAR is sysrouted FROM one or more of the following:
APAR is sysrouted TO one or more of the following:
Fix information
Fixed component name
XL C/C++ FOR LI
Fixed component ID
5725C7300
Applicable component levels
RD10 PSY
UP
[{"Business Unit":{"code":"BU058","label":"IBM Infrastructure w\/TPS"},"Product":{"code":"SSXVZZ","label":"XL C\/C++ for Linux"},"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"13.1","Line of Business":{"code":"LOB57","label":"Power"}}]
Document Information
Modified date:
17 October 2021