| // PR target/63815 |
| // { dg-do run { target { { i?86-*-linux* x86_64-*-linux* } && lp64 } } } |
| // { dg-options "-mcmodel=large" } |
| // { dg-additional-options "-fpic" { target fpic } } |
| |
| struct ICCStringClass |
| { |
| virtual int CreateString (int) = 0; |
| }; |
| |
| struct AGSCCDynamicObject |
| { |
| virtual void Unserialize () = 0; |
| }; |
| |
| struct ScriptString:AGSCCDynamicObject, ICCStringClass |
| { |
| virtual int CreateString (int); |
| virtual void Unserialize (); |
| }; |
| |
| 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 () |
| { |
| } |
| |
| int |
| main () |
| { |
| ICCStringClass *x = new ScriptString; |
| |
| if (x->CreateString (1) != 1) |
| __builtin_abort (); |
| return 0; |
| } |