1 // RUN: %clang_cc1 %s -emit-llvm -o %t -fobjc-gc -fblocks -triple i386-apple-darwin10 -fobjc-runtime=macosx-fragile-10.5 2 // RUN: grep "_Block_object_dispose" %t | count 6 3 // RUN: grep "__copy_helper_block_" %t | count 4 4 // RUN: grep "__destroy_helper_block_" %t | count 4 5 // RUN: grep "__Block_byref_object_copy_" %t | count 2 6 // RUN: grep "__Block_byref_object_dispose_" %t | count 2 7 // RUN: not grep "i32 135)" %t 8 // RUN: grep "_Block_object_assign" %t | count 4 9 // RUN: grep "objc_read_weak" %t | count 2 10 // RUN: grep "objc_assign_weak" %t | count 3 11 // RUN: %clang_cc1 -x objective-c++ %s -emit-llvm -o %t -fobjc-gc -fblocks -triple i386-apple-darwin10 -fobjc-runtime=macosx-fragile-10.5 12 // RUN: grep "_Block_object_dispose" %t | count 6 13 // RUN: grep "__copy_helper_block_" %t | count 4 14 // RUN: grep "__destroy_helper_block_" %t | count 4 15 // RUN: grep "__Block_byref_object_copy_" %t | count 2 16 // RUN: grep "__Block_byref_object_dispose_" %t | count 2 17 // RUN: not grep "i32 135)" %t 18 // RUN: grep "_Block_object_assign" %t | count 4 19 // RUN: grep "objc_read_weak" %t | count 2 20 // RUN: grep "objc_assign_weak" %t | count 3 21 22 @interface NSDictionary @end 23 24 void test1(NSDictionary * dict) { 25 ^{ (void)dict; }(); 26 } 27 28 @interface D 29 @end 30 31 void foo() { 32 __block __weak D *weakSelf; 33 D *l; 34 l = weakSelf; 35 weakSelf = l; 36 } 37 38 void (^__weak b)(void); 39 40 void test2() { 41 __block int i = 0; 42 b = ^ { ++i; }; 43 } 44