forked from OSchip/llvm-project
				
			
		
			
				
	
	
		
			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;
 | 
						|
};
 |