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