1*f4a2713aSLionel Sambuc // RUN: %clang_cc1 -std=c++11 -emit-llvm -fblocks -o - -triple x86_64-apple-darwin10 %s | FileCheck %s 2*f4a2713aSLionel Sambuc // rdar://11343499 3*f4a2713aSLionel Sambuc 4*f4a2713aSLionel Sambuc namespace N { 5*f4a2713aSLionel Sambuc typedef void (^BL)(); 6*f4a2713aSLionel Sambuc int func(BL, BL, BL); 7*f4a2713aSLionel Sambuc 8*f4a2713aSLionel Sambuc // CHECK-LABEL: define internal void @_ZN1N8ArrBlockE_block_invoke( 9*f4a2713aSLionel Sambuc // CHECK-LABEL: define internal void @_ZN1N8ArrBlockE_block_invoke_2( 10*f4a2713aSLionel Sambuc // CHECK-LABEL: define internal void @_ZN1N8ArrBlockE_block_invoke_3 11*f4a2713aSLionel Sambuc BL ArrBlock [] = { ^{}, ^{}, ^{} }; 12*f4a2713aSLionel Sambuc 13*f4a2713aSLionel Sambuc // CHECK-LABEL: define internal void @_ZN1N4ivalE_block_invoke_4( 14*f4a2713aSLionel Sambuc // CHECK-LABEL: define internal void @_ZN1N4ivalE_block_invoke_5( 15*f4a2713aSLionel Sambuc // CHECK-LABEL: define internal void @_ZN1N4ivalE_block_invoke_6( 16*f4a2713aSLionel Sambuc int ival = func(^{}, ^{}, ^{}); 17*f4a2713aSLionel Sambuc 18*f4a2713aSLionel Sambuc // CHECK-LABEL: define internal void @_ZN1N9gvarlobalE_block_invoke_7( 19*f4a2713aSLionel Sambuc void (^gvarlobal)(void) = ^{}; 20*f4a2713aSLionel Sambuc 21*f4a2713aSLionel Sambuc struct S { 22*f4a2713aSLionel Sambuc BL field = ^{}; 23*f4a2713aSLionel Sambuc }; 24*f4a2713aSLionel Sambuc 25*f4a2713aSLionel Sambuc // CHECK-LABEL: define internal void @_ZN1N3blfE_block_invoke_8( 26*f4a2713aSLionel Sambuc S blf; 27*f4a2713aSLionel Sambuc }; 28