summaryrefslogtreecommitdiff
path: root/clang/test/SemaCXX/unreachable-catch-clauses.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'clang/test/SemaCXX/unreachable-catch-clauses.cpp')
-rw-r--r--clang/test/SemaCXX/unreachable-catch-clauses.cpp14
1 files changed, 14 insertions, 0 deletions
diff --git a/clang/test/SemaCXX/unreachable-catch-clauses.cpp b/clang/test/SemaCXX/unreachable-catch-clauses.cpp
new file mode 100644
index 0000000..c75067f
--- /dev/null
+++ b/clang/test/SemaCXX/unreachable-catch-clauses.cpp
@@ -0,0 +1,14 @@
+// RUN: %clang_cc1 -fcxx-exceptions -fexceptions -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}}
+