Fixes are available
April 2012 PTF for XL C/C++ for AIX, V11.1
July 2012 PTF for XL C/C++ for AIX, V11.1
October 2012 PTF for XL C/C++ for AIX, V11.1
February 2013 PTF for XL C/C++ for AIX, V11.1
XL C/C++ for AIX Fix Pack 14 (May 2013 PTF) for 11.1
XL C/C++ for AIX Fix Pack 15 (August 2013 PTF) for 11.1
XL C/C++ for AIX Fix Pack 16 (November 2013 PTF) for 11.1
XL C/C++ for AIX Fix Pack 17 (February 2014 PTF) for 11.1
XL C/C++ for AIX Fix Pack 18 (May 2014 PTF) for 11.1
XL C/C++ for AIX Fix Pack 19 (August 2014 PTF) for 11.1
XL C/C++ for AIX Fix Pack 20 (November 2014 PTF) for 11.1
XL C/C++ for AIX Fix Pack 21 (April 2015 PTF) for 11.1
XL C/C++ for AIX Fix Pack 22 (September 2015 PTF) for 11.1
XL C/C++ for AIX Fix Pack 23 (March 2016 PTF) for 11.1
XL C/C++ for AIX Fix Pack 24 (September 2016 PTF) for 11.1
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
IV16483
Reported component name
XL C/C++ AIX
Reported component ID
5724X1300
Reported release
B10
Status
CLOSED PER
PE
NoPE
HIPER
NoHIPER
Special Attention
NoSpecatt
Submitted date
2012-03-01
Closed date
2012-03-29
Last modified date
2012-04-18
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++ AIX
Fixed component ID
5724X1300
Applicable component levels
RB10 PSY U851438
UP C
Document Information
Modified date:
18 April 2012