aboutsummaryrefslogtreecommitdiff
path: root/test/CodeGenObjCXX/lambda-to-block.mm
blob: a8d0718b1244c4335519cc81bdfd221fee863cef (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
// RUN: %clang_cc1 -x objective-c++ -fblocks -triple x86_64-apple-darwin10 -fobjc-runtime=macosx-fragile-10.5 -std=c++1z -emit-llvm -o - %s | FileCheck %s

// rdar://31385153
// Shouldn't crash!

void takesBlock(void (^)(void));

struct Copyable {
  Copyable(const Copyable &x);
};

void hasLambda(Copyable x) {
  takesBlock([x] () { });
}
// CHECK-LABEL: define internal void @__copy_helper_block_
// CHECK: call void @"_ZZ9hasLambda8CopyableEN3$_0C1ERKS0_"
// CHECK-LABEL: define internal void @"_ZZ9hasLambda8CopyableEN3$_0C2ERKS0_"
// CHECK: call void @_ZN8CopyableC1ERKS_