Fixes are available
APAR status
Closed as program error.
Error description
An internal compiler error is occurring when inlining a function with a parameter that has a template constructor. The function is called with a type different than the expected parameter (i.e. called with char[1] instead of StrRef). Template matching should be able to deduce the char[1] type using the template constructor and convert the parameter to a StrRef. ====== TEST CASE ====== struct StrRef { char *buffer; public: template <int LEN> StrRef(char (&buffer)[LEN]) : buffer(buffer) { } }; void testtest(const StrRef& myStrRef) {} struct MyStr { char s1[1]; }; int main(int argc, char *argv[]) { MyStr val; testtest(val.s1); return 0; } $ xlC -c -qinline test.cpp 1500-004: (U) INTERNAL COMPILER ERROR while compiling main. Compilation ended. Contact your Service Representative and provide the following information: Internal abort. For more information visit: http://www.ibm.com/support/docview.wss?uid=swg21110810 $
Local fix
Do not compile with inlining enabled (-qnoinline)
Problem summary
PROBLEM DESCRIPTION: Internal compiler error in xlCcode after xlCentry inlines a function and produces incorrect intermediate code. USERS AFFECTED: User code containing an assignment operator which assigns an array of char to char pointer, and compiled with -Q and higher opt.
Problem conclusion
The issue was corrected.
Temporary fix
Comments
APAR Information
APAR number
LI76817
Reported component name
XL C/C++ FOR LI
Reported component ID
5724X1400
Reported release
B10
Status
CLOSED PER
PE
NoPE
HIPER
NoHIPER
Special Attention
NoSpecatt / Xsystem
Submitted date
2012-05-24
Closed date
2012-05-24
Last modified date
2012-05-24
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
5724X1400
Applicable component levels
RB10 PSN IV16483
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":"B10","Line of Business":{"code":"LOB57","label":"Power"}}]
Document Information
Modified date:
17 October 2021