diff options
Diffstat (limited to 'test/SemaCXX/try-catch.cpp')
-rw-r--r-- | test/SemaCXX/try-catch.cpp | 19 |
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'}} + } +} |