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)31 ScriptString::CreateString (int fromText)
32 {
33   return CreateNewScriptString (fromText);
34 }
35 
36 void
37 __attribute__ ((noinline))
Unserialize()38 ScriptString::Unserialize ()
39 {
40 }
41 
42 int
main()43 main ()
44 {
45   ICCStringClass *x = new ScriptString;
46 
47   if (x->CreateString (1) != 1)
48     __builtin_abort ();
49   return 0;
50 }
51