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