• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // PR 14535
2 // { dg-do run }
3 // { dg-options "-O -finline" }
4 //
5 // Original test case failure required that Raiser constructor be inlined.
6 
7 extern "C" void abort();
8 bool destructor_called = false;
9 
10 struct B {
RunB11   virtual void Run(){};
12 };
13 
14   struct D : public B {
RunD15     virtual void Run()
16     {
17       struct O {
18         ~O() { destructor_called = true; };
19       } o;
20 
21       struct Raiser {
22         Raiser()  throw( int ) {throw 1;};
23       } raiser;
24     };
25   };
26 
main()27 int main() {
28   try {
29     D d;
30     static_cast<B&>(d).Run();
31   } catch (...) {}
32 
33   if (!destructor_called)
34     abort ();
35 }
36