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