28 lines
		
	
	
		
			886 B
		
	
	
	
		
			C++
		
	
	
	
			
		
		
	
	
			28 lines
		
	
	
		
			886 B
		
	
	
	
		
			C++
		
	
	
	
| // RUN: %clang_cc1 -std=c++11 -emit-llvm -fblocks -o - -triple x86_64-apple-darwin10 %s | FileCheck %s
 | |
| // rdar://11343499
 | |
| 
 | |
| namespace N {
 | |
|   typedef void (^BL)();
 | |
|   int func(BL, BL, BL);
 | |
| 
 | |
| // CHECK-LABEL: define internal void @_ZN1N8ArrBlockE_block_invoke(
 | |
| // CHECK-LABEL: define internal void @_ZN1N8ArrBlockE_block_invoke_2(
 | |
| // CHECK-LABEL: define internal void @_ZN1N8ArrBlockE_block_invoke_3
 | |
|   BL ArrBlock [] = { ^{}, ^{}, ^{} };
 | |
| 
 | |
| // CHECK-LABEL: define internal void @_ZN1N4ivalE_block_invoke_4(
 | |
| // CHECK-LABEL: define internal void @_ZN1N4ivalE_block_invoke_5(
 | |
| // CHECK-LABEL: define internal void @_ZN1N4ivalE_block_invoke_6(
 | |
|   int ival = func(^{}, ^{}, ^{});
 | |
| 
 | |
| // CHECK-LABEL: define internal void @_ZN1N9gvarlobalE_block_invoke_7(
 | |
|   void (^gvarlobal)(void) = ^{};
 | |
| 
 | |
|   struct S {
 | |
|     BL field = ^{};
 | |
|   };
 | |
| 
 | |
| // CHECK-LABEL: define internal void @_ZN1N3blfE_block_invoke_8(
 | |
|   S blf;
 | |
| };
 |