brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.0 KiB · 89ecfe0 Raw
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