Test that a call to a trampoline is turned into a call to
[oota-llvm.git] / test / C++Frontend / 2007-07-04-NestedCatches.cpp
1 // RUN: %llvmgxx %s -S -O2 -o - | \
2 // RUN:   ignore grep {eh\.selector.*One.*Two.*Three.*Four.*Five.*Six.*null} | \
3 // RUN:     wc -l | grep {\[01\]}
4
5 extern void X(void);
6
7 struct One   {};
8 struct Two   {};
9 struct Three {};
10 struct Four  {};
11 struct Five  {};
12 struct Six   {};
13
14 static void A(void) throw ()
15 {
16   X();
17 }
18
19 static void B(void) throw (Two)
20 {
21   try { A(); } catch (One) {}
22 }
23
24 static void C(void) throw (Six, Five)
25 {
26   try { B(); } catch (Three) {} catch (Four) {}
27 }
28
29 int main ()
30 {
31   try { C(); } catch (...) {}
32 }