1 // RUN: %clang_cc1 -rewrite-objc -fobjc-runtime=macosx-fragile-10.5 -fobjc-exceptions -verify %s -o - 2 3 int main() { 4 @try { 5 printf("executing try"); // expected-warning{{implicitly declaring library function 'printf' with type 'int (const char *, ...)'}} \ 6 // expected-note{{include the header <stdio.h> or explicitly provide a declaration for 'printf'}} 7 return(0); // expected-warning{{rewriter doesn't support user-specified control flow semantics for @try/@finally (code may not execute properly)}} 8 } @finally { 9 printf("executing 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 28 void test_sync_with_implicit_finally() { 29 id foo; 30 @synchronized (foo) { 31 return; // The rewriter knows how to generate code for implicit finally 32 } 33 } 34 35 void test2_try_with_implicit_finally() { 36 @try { 37 return; // The rewriter knows how to generate code for implicit finally 38 } @catch (id e) { 39 40 } 41 } 42 43