[PATCH] Fix darwin/25908, key functions vs non weak vtables

Andrew Pinski pinskia@physics.uc.edu
Thu Jan 26 16:18:00 GMT 2006


The problem here is that Darwin has non weak vtables which means that
the key function for the following source can no longer be the inline function:
class f
{
  virtual void g();
};
inline void f::g()
{}

Now this patch makes darwin follow the arm-eabi C++ ABI instead of
the IA64 C++ ABI in respect with vtables and key functions.  Darwin
already follows the ARM-EABI C++ ABI for vtables being non weak.
This fixes PR 25908 which has the above class in a header file
and included in two different TUs.

OK? Bootstrapped and tested on powerpc-darwin with no regressions.

Thanks,
Andrew Pinski

ChangeLog:

	* config/darwin.h (TARGET_CXX_KEY_METHOD_MAY_BE_INLINE):
	Define to be always return false.

	* g++.dg/abi/key1.C: Enable also for Darwin.
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: fixPR25908.diff.txt
URL: <http://gcc.gnu.org/pipermail/gcc-patches/attachments/20060126/31ebc052/attachment.txt>


More information about the Gcc-patches mailing list