blob: 83695a8b734dac82bb4681184939b08c3bd7c133 [file] [log] [blame]
Fariborz Jahaniand295b822011-09-02 21:33:44 +00001// RUN: %clang_cc1 %s -emit-llvm -o - -fblocks -triple x86_64-apple-darwin10 | FileCheck %s
2// rdar://10033986
3
4typedef void (^BLOCK)(void);
5int main ()
6{
7 _Complex double c;
8 BLOCK b = ^() {
9 _Complex double z;
10 z = z + c;
11 };
12 b();
13}
14
Stephen Lin93ab6bf2013-08-15 06:47:53 +000015// CHECK-LABEL: define internal void @__main_block_invoke
Fariborz Jahaniand295b822011-09-02 21:33:44 +000016// CHECK: [[C1:%.*]] = alloca { double, double }, align 8
Fariborz Jahanian0f2c1ce2011-09-02 21:47:51 +000017// CHECK: [[RP:%.*]] = getelementptr inbounds { double, double }* [[C1]], i32 0, i32 0
18// CHECK-NEXT: [[R:%.*]] = load double* [[RP]]
19// CHECK-NEXT: [[IP:%.*]] = getelementptr inbounds { double, double }* [[C1]], i32 0, i32 1
20// CHECK-NEXT: [[I:%.*]] = load double* [[IP]]