diff options
Diffstat (limited to 'clang/test/SemaObjC')
| -rw-r--r-- | clang/test/SemaObjC/block-as-object.m | 20 | ||||
| -rw-r--r-- | clang/test/SemaObjC/rdar6248119.m | 27 |
2 files changed, 47 insertions, 0 deletions
diff --git a/clang/test/SemaObjC/block-as-object.m b/clang/test/SemaObjC/block-as-object.m new file mode 100644 index 00000000000..a85b6067571 --- /dev/null +++ b/clang/test/SemaObjC/block-as-object.m @@ -0,0 +1,20 @@ +// RUN: %clang_cc1 %s -fsyntax-only -verify -fblocks + +@interface Whatever +- copy; +@end + +typedef long (^MyBlock)(id obj1, id obj2); + +void foo(MyBlock b) { + id bar = [b copy]; +} + +void foo2(id b) { +} + +void foo3(void (^block)(void)) { + foo2(block); + id x; + foo(x); +} diff --git a/clang/test/SemaObjC/rdar6248119.m b/clang/test/SemaObjC/rdar6248119.m new file mode 100644 index 00000000000..6b120b28475 --- /dev/null +++ b/clang/test/SemaObjC/rdar6248119.m @@ -0,0 +1,27 @@ +// RUN: %clang_cc1 -fsyntax-only %s -verify +// Test case for: +// <rdar://problem/6248119> @finally doesn't introduce a new scope + +void f0() { + int i; + @try { + } @finally { + int i = 0; + } +} + +void f1() { + int i; + @try { + int i =0; + } @finally { + } +} + +void f2() { + int i; + @try { + } @catch(id e) { + int i = 0; + } +} |

