aboutsummaryrefslogtreecommitdiff
path: root/test/SemaCXX/try-catch.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'test/SemaCXX/try-catch.cpp')
-rw-r--r--test/SemaCXX/try-catch.cpp19
1 files changed, 19 insertions, 0 deletions
diff --git a/test/SemaCXX/try-catch.cpp b/test/SemaCXX/try-catch.cpp
new file mode 100644
index 0000000000..920a1d59c7
--- /dev/null
+++ b/test/SemaCXX/try-catch.cpp
@@ -0,0 +1,19 @@
+// RUN: clang -fsyntax-only -verify %s
+
+struct A;
+
+void f()
+{
+ try {
+ } catch(int i) { // expected-note {{previous definition}}
+ int j = i;
+ int i; // expected-error {{redefinition of 'i'}}
+ } catch(float i) {
+ } catch(void v) { // expected-error {{cannot catch incomplete type 'void'}}
+ } catch(A a) { // expected-error {{cannot catch incomplete type 'struct A'}}
+ } catch(A *a) { // expected-error {{cannot catch pointer to incomplete type 'struct A'}}
+ } catch(A &a) { // expected-error {{cannot catch reference to incomplete type 'struct A'}}
+ } catch(...) {
+ int j = i; // expected-error {{use of undeclared identifier 'i'}}
+ }
+}