diff options
author | Duncan Sands <baldrick@free.fr> | 2007-07-04 20:48:48 +0000 |
---|---|---|
committer | Duncan Sands <baldrick@free.fr> | 2007-07-04 20:48:48 +0000 |
commit | b2e18600c093545133f3ecbf3c254dc3651531db (patch) | |
tree | 5a6c60a4d174bdb4477b18cbeb7069564d8fa914 /test | |
parent | 303d60253d3edf90c53e817c32c42615a4bec7af (diff) | |
download | llvm-b2e18600c093545133f3ecbf3c254dc3651531db.tar.gz llvm-b2e18600c093545133f3ecbf3c254dc3651531db.tar.bz2 llvm-b2e18600c093545133f3ecbf3c254dc3651531db.tar.xz |
Nested try-catch-filter testcase.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37874 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test')
-rw-r--r-- | test/C++Frontend/2007-07-04-NestedCatches.cpp | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/test/C++Frontend/2007-07-04-NestedCatches.cpp b/test/C++Frontend/2007-07-04-NestedCatches.cpp new file mode 100644 index 0000000000..035d5bbcf3 --- /dev/null +++ b/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 (...) {} +} |