Fixes are available
April 2013 Update for XL C/C++ for Linux, V12.1
XL C/C++ for Linux Fix Pack 8 (October 2015 Update) for 12.1
December 2012 Update for XL C/C++ for Linux, V12.1
XL C/C++ for Linux Fix Pack 4 (October 2013 Update) for 12.1
XL C/C++ for Linux Fix Pack 5 (December 2013 Update) for 12.1
XL C/C++ for Linux Fix Pack 6 (February 2014 Update) for 12.1
XL C/C++ for Linux Fix Pack 7 (May 2014 Update) for 12.1
APAR status
Closed as program error.
Error description
The compiler frontend (xlCentry) produces and internal compiler error when compiling the following test case at -O0. It works fine at -O2 or higher. ===== COMPILE COMMAND: bgxlC -c test.cpp -O0 ===== TEST CASE: $ cat test.cpp struct A{ _Complex double& operator()(int, int); }; void f() { A a; ~a(0, 0); } $ ===== ACTUAL OUTPUT: $ bgxlC -c test.cpp -O0 /opt/ibmcmp/vacpp/bg/12.1/bin/.orig/bgxlC: 1501-230 (S) Internal compiler error; please contact your Service Representative. For more information visit: http://www.ibm.com/support/docview.wss?uid=swg21110810 $ ===== EXPECTED OUTPUT: Should compile clean without an internal compiler error.
Local fix
n/a
Problem summary
USERS AFFECTED: Users of complex operations who use references and optimization are affected by this issue. PROBLEM DESCRIPTION: The complex conjugate operator is not correctly processed when the operand is a C++ reference, which leads to an incorrect optimization that result in a compiler failure during code generation. Minimal TC: _Complex double& foo(); void f() { ~foo(); }
Problem conclusion
The solution is to have the front-end correctly process references in the conjugate operator.
Temporary fix
Comments
APAR Information
APAR number
LI77141
Reported component name
XL C/C++ FOR LI
Reported component ID
5725C7300
Reported release
C10
Status
CLOSED PER
PE
NoPE
HIPER
NoHIPER
Special Attention
NoSpecatt
Submitted date
2012-12-17
Closed date
2012-12-17
Last modified date
2012-12-17
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
RC10 PSN LI76885
UP06/09/13
[{"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":"12.1","Line of Business":{"code":"LOB57","label":"Power"}}]
Document Information
Modified date:
14 October 2021