1 // PR target/63815 2 // { dg-do run { target { { i?86-*-linux* x86_64-*-linux* } && lp64 } } } 3 // { dg-options "-mcmodel=large" } 4 // { dg-additional-options "-fpic" { target fpic } } 5 6 struct ICCStringClass 7 { 8 virtual int CreateString (int) = 0; 9 }; 10 11 struct AGSCCDynamicObject 12 { 13 virtual void Unserialize () = 0; 14 }; 15 16 struct ScriptString:AGSCCDynamicObject, ICCStringClass 17 { 18 virtual int CreateString (int); 19 virtual void Unserialize (); 20 }; 21 22 int 23 __attribute__ ((noinline)) 24 CreateNewScriptString (int fromText, bool reAllocate = true) 25 { 26 return fromText; 27 } 28 29 int 30 __attribute__ ((noinline)) CreateString(int fromText)31ScriptString::CreateString (int fromText) 32 { 33 return CreateNewScriptString (fromText); 34 } 35 36 void 37 __attribute__ ((noinline)) Unserialize()38ScriptString::Unserialize () 39 { 40 } 41 42 int main()43main () 44 { 45 ICCStringClass *x = new ScriptString; 46 47 if (x->CreateString (1) != 1) 48 __builtin_abort (); 49 return 0; 50 } 51