Fixes are available
October 2010 PTF for XL C/C++ for AIX, V10.1
May 2012 PTF for XL C/C++ for AIX, V10.1
January 2013 PTF for XL C/C++ for AIX, V10.1
XL C/C++ for AIX Fix Pack 18 (July 2013 PTF) for 10.1
XL C/C++ for AIX Fix Pack 19 (October 2013 PTF) for 10.1
XL C/C++ for AIX Fix Pack 21 (October 2015 PTF) for 10.1
March 2010 PTF for XL C/C++ for AIX, V10.1
April 2010 PTF for XL C/C++ for AIX, V10.1
June 2010 PTF for XL C/C++ for AIX, V10.1
May 2011 PTF for XL C/C++ for AIX, V10.1
October 2011 PTF for XL C/C++ for AIX, V10.1
February 2012 PTF for XL C/C++ for AIX, V10.1
September 2012 PTF for XL C/C++ for AIX, V10.1
XL C/C++ for AIX Fix Pack 20 (October 2014 PTF) for 10.1
APAR status
Closed as program error.
Error description
A reduced and legitimate test case generated error complaining the inline function is reference, but it is not defined. class A {public: virtual int boo() { return 1; } }; class B :public virtual A {public: virtual int boo() { return 4; } virtual ~B(); virtual void foo(); }; void B::foo() {} "inline_virtual2.C", line 8.13: 1540-0723 (S) The inline function "int boo()" is referenced, but it is not defined.
Local fix
Use -qkeepinlines or, Use global volatile function pointers to reference the functions for which this error occurs.
Problem summary
USER AFFECTED: Programs that meet the following criterias: 1. A derived class with virtual inheritance of its base class 2. The derived class has inline and non-inline virtual functions declared. 3. The distinguishing function (first non-inline virtual function) of the derived class is not defined PROBLEM DESCRIPTION: In the case where the distinguishing function is not defined, XLC still generates virtual thunks for the inline virtual functions (this does not match the behavior of GCC where virutal thunks are not created). The virtual thunk declarations cause error since they have no implemenation and are needed to be inlined.
Problem conclusion
Disable the generation of the virtual thunk declartions for classes without defined distinguishing function.
Temporary fix
Comments
APAR Information
APAR number
IZ70955
Reported component name
XL C++ AIX
Reported component ID
5724U8100
Reported release
A10
Status
CLOSED PER
PE
NoPE
HIPER
NoHIPER
Special Attention
NoSpecatt
Submitted date
2010-02-24
Closed date
2010-02-24
Last modified date
2010-02-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++ AIX
Fixed component ID
5724U8100
Applicable component levels
Document Information
Modified date:
24 February 2010