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 24void test1(NSDictionary * dict) { 25 ^{ (void)dict; }(); 26} 27 28@interface D 29@end 30 31void foo() { 32 __block __weak D *weakSelf; 33 D *l; 34 l = weakSelf; 35 weakSelf = l; 36} 37 38void (^__weak b)(void); 39 40void test2() { 41 __block int i = 0; 42 b = ^ { ++i; }; 43} 44