Fariborz Jahanian | b384d32 | 2007-10-04 20:19:06 +0000 | [diff] [blame^] | 1 | // RUN: clang -fsyntax-only -verify %s |
2 | |||||
Fariborz Jahanian | 397fcc1 | 2007-09-19 19:14:32 +0000 | [diff] [blame] | 3 | void * proc(); |
4 | |||||
5 | @interface Frob | ||||
6 | @end | ||||
7 | |||||
8 | @interface Frob1 | ||||
9 | @end | ||||
10 | |||||
11 | void * foo() | ||||
12 | { | ||||
13 | @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) { | ||||
Fariborz Jahanian | b384d32 | 2007-10-04 20:19:06 +0000 | [diff] [blame^] | 27 | @throw 1,2; |
Fariborz Jahanian | 397fcc1 | 2007-09-19 19:14:32 +0000 | [diff] [blame] | 28 | } |
29 | @catch(...) { | ||||
30 | @throw (4,3,proc()); | ||||
31 | } | ||||
32 | } | ||||
33 | |||||
34 | @try { // expected-error {{@try statment without a @catch and @finally clause}} | ||||
35 | return proc(); | ||||
36 | } | ||||
37 | } | ||||
38 |