re PR c++/67184 (Missed optimization with C++11 final specifier)
[official-gcc.git] / gcc / testsuite / g++.dg / other / pr63815.C
blobfce6226bb71d31b83a3967e8b3d572533b2a96a2
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 } }
6 struct ICCStringClass
8   virtual int CreateString (int) = 0;
9 };
11 struct AGSCCDynamicObject
13   virtual void Unserialize () = 0;
16 struct ScriptString:AGSCCDynamicObject, ICCStringClass
18   virtual int CreateString (int);
19   virtual void Unserialize ();
22 int
23 __attribute__ ((noinline))
24 CreateNewScriptString (int fromText, bool reAllocate = true)
26   return fromText;
29 int
30 __attribute__ ((noinline))
31 ScriptString::CreateString (int fromText)
33   return CreateNewScriptString (fromText);
36 void
37 __attribute__ ((noinline))
38 ScriptString::Unserialize ()
42 int
43 main ()
45   ICCStringClass *x = new ScriptString;
47   if (x->CreateString (1) != 1)
48     __builtin_abort ();
49   return 0;