aboutsummaryrefslogtreecommitdiff
path: root/test/SemaCXX/unreachable-catch-clauses.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'test/SemaCXX/unreachable-catch-clauses.cpp')
-rw-r--r--test/SemaCXX/unreachable-catch-clauses.cpp14
1 files changed, 14 insertions, 0 deletions
diff --git a/test/SemaCXX/unreachable-catch-clauses.cpp b/test/SemaCXX/unreachable-catch-clauses.cpp
new file mode 100644
index 000000000000..c8b642e7ab53
--- /dev/null
+++ b/test/SemaCXX/unreachable-catch-clauses.cpp
@@ -0,0 +1,14 @@
+// RUN: clang-cc -fsyntax-only -verify %s
+
+class BaseEx {};
+class Ex1: public BaseEx {};
+typedef Ex1 Ex2;
+
+void f();
+
+void test()
+try {}
+catch (BaseEx &e) { f(); }
+catch (Ex1 &e) { f(); } // expected-note {{for type class Ex1 &}}
+catch (Ex2 &e) { f(); } // expected-warning {{exception of type Ex2 & will be caught by earlier handler}}
+