44 lines · plain
1// RUN: %clang_cc1 -rewrite-objc -fobjc-runtime=macosx-fragile-10.5 -fobjc-exceptions -verify %s -o -2 3extern int printf(const char *, ...);4 5int main(void) {6 @try {7 printf("executing try");8 return(0); // expected-warning{{rewriter doesn't support user-specified control flow semantics for @try/@finally (code may not execute properly)}}9 } @finally {10 printf("executing finally");11 }12 while (1) {13 @try {14 printf("executing try");15 break;16 } @finally {17 printf("executing finally");18 }19 printf("executing after finally block");20 }21 @try {22 printf("executing try");23 } @finally {24 printf("executing finally");25 }26 return 0;27}28 29void test_sync_with_implicit_finally(void) {30 id foo;31 @synchronized (foo) {32 return; // The rewriter knows how to generate code for implicit finally33 }34}35 36void test2_try_with_implicit_finally(void) {37 @try {38 return; // The rewriter knows how to generate code for implicit finally39 } @catch (id e) {40 41 }42}43 44