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