]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
This commit was manufactured by cvs2svn to create branch
authorNo Author <no-author@gcc.gnu.org>
Wed, 17 Mar 2004 18:19:31 +0000 (18:19 +0000)
committerNo Author <no-author@gcc.gnu.org>
Wed, 17 Mar 2004 18:19:31 +0000 (18:19 +0000)
'gcc-3_3-branch'.

From-SVN: r79593

gcc/testsuite/g++.dg/eh/spec7.C [new file with mode: 0644]

diff --git a/gcc/testsuite/g++.dg/eh/spec7.C b/gcc/testsuite/g++.dg/eh/spec7.C
new file mode 100644 (file)
index 0000000..08586a2
--- /dev/null
@@ -0,0 +1,35 @@
+// PR 14535
+// { dg-do run }
+// { dg-options "-O -finline" }
+//
+// Original test case failure required that Raiser constructor be inlined.
+
+extern "C" void abort(); 
+bool destructor_called = false; 
+struct B { 
+    virtual void Run(){}; 
+}; 
+struct D : public B { 
+    virtual void Run() 
+      { 
+        struct O { 
+            ~O() { destructor_called = true; }; 
+        } o; 
+         
+        struct Raiser { 
+            Raiser()  throw( int ) {throw 1;}; 
+        } raiser; 
+      }; 
+}; 
+int main() { 
+    try { 
+      D d; 
+      static_cast<B&>(d).Run(); 
+    } catch (...) {} 
+    if (!destructor_called) 
+      abort (); 
+}