Fixes are available
May 2010 Update for XL C/C++ Advanced Edition for Blue Gene/P, V9.0
December 2010 Update for XL C/C++ Advanced Edition for Blue Gene/P, V9.0
XL C/C++ Advanced Edition for Blue Gene/P Fix Pack 17 (October 2013 Update) for 9.0
April 2011 Update for XL C/C++ Advanced Edition for Blue Gene/P, V9.0
August 2011 Update for XL C/C++ Advanced Edition for Blue Gene/P, V9.0
April 2012 Update for XL C/C++ Advanced Edition for Blue Gene/P, V9.0
August 2012 Update for XL C/C++ Advanced Edition for Blue Gene/P, V9.0
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
LI75006
Reported component name
XL C/C++ AE BG/
Reported component ID
5799HJE00
Reported release
900
Status
CLOSED PER
PE
NoPE
HIPER
NoHIPER
Special Attention
NoSpecatt
Submitted date
2009-11-04
Closed date
2010-01-12
Last modified date
2010-01-12
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++ AE BG/
Fixed component ID
5799HJE00
Applicable component levels
R900 PSY
UP
[{"Business Unit":{"code":"BU054","label":"Systems w\/TPS"},"Product":{"code":"SSJT9L","label":"XL C\/C++"},"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"9.0","Line of Business":{"code":"LOB08","label":"Cognitive Systems"}}]
Document Information
Modified date:
14 October 2021