Fixes are available
June 2011 Update for XL C/C++ for Linux, V10.1
XL C/C++ for Linux Fix Pack 8 (January 2014 Update) for 10.1
August 2010 Update for XL C/C++ for Linux, V10.1
January 2011 Update for XL C/C++ for Linux, V10.1
January 2012 Update for XL C/C++ for Linux, V10.1
July 2012 Update for XL C/C++ for Linux, V10.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
LI75560
Reported component name
XL C/C++ RHEL52
Reported component ID
5724U8310
Reported release
A10
Status
CLOSED PER
PE
NoPE
HIPER
NoHIPER
Special Attention
NoSpecatt
Submitted date
2010-07-28
Closed date
2010-07-28
Last modified date
2010-07-28
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++ RHEL52
Fixed component ID
5724U8310
Applicable component levels
RA10 PSN LI75006
UP06/09/13
[{"Business Unit":{"code":"BU054","label":"Systems w\/TPS"},"Product":{"code":"SSJT9L","label":"XL C\/C++"},"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"A.1","Line of Business":{"code":"LOB08","label":"Cognitive Systems"}}]
Document Information
Modified date:
17 October 2021