From 2917ea11c34a4036a4add814a6b8489ece347f2e Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Wed, 27 Aug 2003 18:19:53 +0000 Subject: [PATCH] New testcase. Unfortunately, native GCC gets this wrong. Someday we will have to figure out how to deal with this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8162 91177308-0d34-0410-b5e6-96231b3b80d8 --- test/C++Frontend/EH/copy_ctor_throw.cpp | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 test/C++Frontend/EH/copy_ctor_throw.cpp diff --git a/test/C++Frontend/EH/copy_ctor_throw.cpp b/test/C++Frontend/EH/copy_ctor_throw.cpp new file mode 100644 index 00000000000..1c50984ad2e --- /dev/null +++ b/test/C++Frontend/EH/copy_ctor_throw.cpp @@ -0,0 +1,25 @@ +/* Test for throwing an exception from the copy ctor of the exception object + * invoked while building an exception. + */ +#include + +struct foo { + foo() {} + foo(const foo &F) { throw 1; } +}; + +int main() { + try { + foo f; + throw f; + } catch (int i) { + printf("Success!\n"); + return 0; + } catch (foo &f) { + printf("Failure: caught a foo!\n"); + return 1; + } catch (...) { + printf("Failure: caught something else!\n"); + return 1; + } +} -- 2.34.1