44 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Objective-C
		
	
	
	
			
		
		
	
	
			44 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Objective-C
		
	
	
	
| // RUN: %clang_cc1 %s -emit-llvm -o %t -fobjc-gc -fblocks -triple i386-apple-darwin10 -fobjc-runtime=macosx-fragile-10.5
 | |
| // RUN: grep "_Block_object_dispose" %t | count 6
 | |
| // RUN: grep "__copy_helper_block_" %t | count 4
 | |
| // RUN: grep "__destroy_helper_block_" %t | count 4
 | |
| // RUN: grep "__Block_byref_object_copy_" %t | count 2
 | |
| // RUN: grep "__Block_byref_object_dispose_" %t | count 2
 | |
| // RUN: not grep "i32 135)" %t
 | |
| // RUN: grep "_Block_object_assign" %t | count 4
 | |
| // RUN: grep "objc_read_weak" %t | count 2
 | |
| // RUN: grep "objc_assign_weak" %t | count 3
 | |
| // RUN: %clang_cc1 -x objective-c++ %s -emit-llvm -o %t -fobjc-gc -fblocks -triple i386-apple-darwin10 -fobjc-runtime=macosx-fragile-10.5
 | |
| // RUN: grep "_Block_object_dispose" %t | count 6
 | |
| // RUN: grep "__copy_helper_block_" %t | count 4
 | |
| // RUN: grep "__destroy_helper_block_" %t | count 4
 | |
| // RUN: grep "__Block_byref_object_copy_" %t | count 2
 | |
| // RUN: grep "__Block_byref_object_dispose_" %t | count 2
 | |
| // RUN: not grep "i32 135)" %t
 | |
| // RUN: grep "_Block_object_assign" %t | count 4
 | |
| // RUN: grep "objc_read_weak" %t | count 2
 | |
| // RUN: grep "objc_assign_weak" %t | count 3
 | |
| 
 | |
| @interface NSDictionary @end
 | |
| 
 | |
| void test1(NSDictionary * dict) {
 | |
|   ^{ (void)dict; }();
 | |
| }
 | |
| 
 | |
| @interface D
 | |
| @end
 | |
| 
 | |
| void foo() {
 | |
|   __block __weak D *weakSelf;
 | |
|   D *l;
 | |
|   l = weakSelf;
 | |
|   weakSelf = l;
 | |
| }
 | |
| 
 | |
| void (^__weak b)(void);
 | |
| 
 | |
| void test2() {
 | |
|   __block int i = 0;
 | |
|   b = ^ {  ++i; };
 | |
| }
 |