https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63815
--- Comment #10 from H.J. Lu <hjl.tools at gmail dot com> --- (In reply to Uroš Bizjak from comment #9) > (In reply to Uroš Bizjak from comment #8) > > (In reply to H.J. Lu from comment #7) > > > Created attachment 33942 [details] > > > A patch > > > > Please also add a testcase that will exercise this functionality. > > ... runtime testcase ... Here is a testcase: [hjl@gnu-6 tmp]$ cat foo.h struct ICCStringClass { virtual int CreateString (int) = 0; }; struct AGSCCDynamicObject { virtual void Unserialize () = 0; }; struct ScriptString:AGSCCDynamicObject, ICCStringClass { virtual int CreateString (int); virtual void Unserialize (); }; [hjl@gnu-6 tmp]$ cat foo1.cc #include "foo.h" int __attribute__ ((noinline)) CreateNewScriptString (int fromText, bool reAllocate = true) { return fromText; } int __attribute__ ((noinline)) ScriptString::CreateString (int fromText) { return CreateNewScriptString (fromText); } void __attribute__ ((noinline)) ScriptString::Unserialize () { } [hjl@gnu-6 tmp]$ cat foo2.cc #include "foo.h" int main () { ICCStringClass *x = new ScriptString; if (x->CreateString (1) != 1) __builtin_abort (); return 0; } [hjl@gnu-6 tmp]$ g++ -shared -fpic -O2 -mcmodel=large -o libfoo.so foo1.cc [hjl@gnu-6 tmp]$ g++ foo2.cc ./libfoo.so [hjl@gnu-6 tmp]$ ./a.out Segmentation fault [hjl@gnu-6 tmp]$ But I am having a hard time to add it to gcc testsuite.