blob: d6ad8d38ef7130685d92029413080f5c92fde304 [file] [log] [blame]
Fariborz Jahanian37c9c612007-10-04 20:19:06 +00001// RUN: clang -fsyntax-only -verify %s
2
Fariborz Jahanian64b864e2007-09-19 19:14:32 +00003void * proc();
4
5@interface Frob
6@end
7
8@interface Frob1
9@end
10
11void * foo()
12{
Chris Lattner847f5c12007-12-27 19:57:00 +000013 @try {
14 return proc();
15 }
16 @catch (Frob* ex) {
17 @throw;
18 }
19 @catch (Frob1* ex) {
20 @throw proc();
21 }
22 @finally {
23 @try {
24 return proc();
25 }
26 @catch (Frob* ex) {
27 @throw 1,2;
28 }
29 @catch(...) {
30 @throw (4,3,proc());
31 }
32 }
Fariborz Jahanian64b864e2007-09-19 19:14:32 +000033
Chris Lattner847f5c12007-12-27 19:57:00 +000034 @try { // expected-error {{@try statment without a @catch and @finally clause}}
35 return proc();
36 }
37}
38
39
40void bar()
41{
42 @try {}// expected-error {{@try statment without a @catch and @finally clause}}
43 @"s" {} // expected-warning {{result unused}} expected-error {{expected ';'}}
44}
45
46void baz()
47{
48 @try {}// expected-error {{@try statment without a @catch and @finally clause}}
49 @try {}// expected-error {{undeclared identifier}}
50 @finally {}
Fariborz Jahanian64b864e2007-09-19 19:14:32 +000051}
52