From fda68e7b10a5ed3251e8b9f48685724c38a79a69 Mon Sep 17 00:00:00 2001 From: Duncan Sands Date: Wed, 4 Jul 2007 20:48:48 +0000 Subject: Nested try-catch-filter testcase. llvm-svn: 37874 --- llvm/test/C++Frontend/2007-07-04-NestedCatches.cpp | 32 ++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 llvm/test/C++Frontend/2007-07-04-NestedCatches.cpp (limited to 'llvm/test/C++Frontend/2007-07-04-NestedCatches.cpp') diff --git a/llvm/test/C++Frontend/2007-07-04-NestedCatches.cpp b/llvm/test/C++Frontend/2007-07-04-NestedCatches.cpp new file mode 100644 index 00000000000..035d5bbcf33 --- /dev/null +++ b/llvm/test/C++Frontend/2007-07-04-NestedCatches.cpp @@ -0,0 +1,32 @@ +// RUN: %llvmgxx %s -S -emit-llvm -O2 -o - | \ +// RUN: ignore grep {eh\.selector.*One.*Two.*Three.*Four.*Five.*Six.*null} | \ +// RUN: wc -l | grep {\[02\]} + +extern void X(void); + +struct One {}; +struct Two {}; +struct Three {}; +struct Four {}; +struct Five {}; +struct Six {}; + +static void A(void) throw () +{ + X(); +} + +static void B(void) throw (Two) +{ + try { A(); } catch (One) {} +} + +static void C(void) throw (Six, Five) +{ + try { B(); } catch (Three) {} catch (Four) {} +} + +int main () +{ + try { C(); } catch (...) {} +} -- cgit v1.2.3