]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - test/CodeGenCXX/global-block-literal-helpers.cpp
Vendor import of clang release_34 branch r197841 (effectively, 3.4 RC3):
[FreeBSD/FreeBSD.git] / test / CodeGenCXX / global-block-literal-helpers.cpp
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 };