blob: 5b222fdd21b13e770d689716b4b838e237076744 [file] [log] [blame]
Fariborz Jahanian220419a2012-03-15 23:50:33 +00001// RUN: %clang_cc1 -x objective-c -Wno-return-type -fblocks -fms-extensions -rewrite-objc %s -o %t-rw.cpp
2// RUN: %clang_cc1 -fsyntax-only -fcxx-exceptions -fexceptions -Wno-address-of-temporary -D"id=void*" -D"SEL=void*" -D"__declspec(X)=" %t-rw.cpp
3
4extern int printf(const char *, ...);
5
6int main() {
7 @try {
8 }
9 @finally {
10 }
11 while (1) {
12 @try {
13 printf("executing try");
14 break;
15 } @finally {
16 printf("executing finally");
17 }
18 printf("executing after finally block");
19 }
20 @try {
21 printf("executing try");
22 } @finally {
23 printf("executing finally");
24 }
25 return 0;
26}
27
28void test2_try_with_implicit_finally() {
29 @try {
30 return;
31 } @catch (id e) {
32
33 }
34}
35
36void FINALLY();
37void TRY();
38void CATCH();
39
40@interface NSException
41@end
42
43@interface Foo
44@end
45
46@implementation Foo
47- (void)bar {
48 @try {
49 TRY();
50 }
51 @catch (NSException *e) {
52 CATCH();
53 }
54 @finally {
55 FINALLY();
56 }
57}
58@end