annotate clang/test/CodeGenObjC/blocks-1.m @ 180:680fa57a2f20

fix compile errors.
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Sat, 30 May 2020 17:44:06 +0900
parents 1d019706d866
children 2e18cbf3894f
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
150
anatofuz
parents:
diff changeset
1 // RUN: %clang_cc1 %s -emit-llvm -o - -fobjc-gc -fblocks -triple i386-apple-darwin10 -fobjc-runtime=macosx-fragile-10.5 | FileCheck %s --check-prefix=CHECK --check-prefix=OBJC
anatofuz
parents:
diff changeset
2 // RUN: %clang_cc1 -x objective-c++ %s -emit-llvm -o - -fobjc-gc -fblocks -triple i386-apple-darwin10 -fobjc-runtime=macosx-fragile-10.5 | FileCheck %s --check-prefix=CHECK --check-prefix=OBJCXX
anatofuz
parents:
diff changeset
3
anatofuz
parents:
diff changeset
4 // OBJC-LABEL: define void @test1(
anatofuz
parents:
diff changeset
5 // OBJCXX-LABEL: define void @_Z5test1P12NSDictionary(
anatofuz
parents:
diff changeset
6
anatofuz
parents:
diff changeset
7 // CHECK-LABEL: define linkonce_odr hidden void @__copy_helper_block_
anatofuz
parents:
diff changeset
8 // CHECK: call void @_Block_object_assign(
anatofuz
parents:
diff changeset
9
anatofuz
parents:
diff changeset
10 // CHECK-LABEL: define linkonce_odr hidden void @__destroy_helper_block_
anatofuz
parents:
diff changeset
11 // CHECK: call void @_Block_object_dispose(
anatofuz
parents:
diff changeset
12
anatofuz
parents:
diff changeset
13 // OBJC-LABEL: define void @foo(
anatofuz
parents:
diff changeset
14 // OBJCXX-LABEL: define void @_Z3foov(
anatofuz
parents:
diff changeset
15 // CHECK: call i8* @objc_read_weak(
anatofuz
parents:
diff changeset
16 // CHECK: call i8* @objc_assign_weak(
anatofuz
parents:
diff changeset
17 // CHECK: call void @_Block_object_dispose(
anatofuz
parents:
diff changeset
18
anatofuz
parents:
diff changeset
19 // OBJC-LABEL: define void @test2(
anatofuz
parents:
diff changeset
20 // OBJCXX-LABEL: define void @_Z5test2v(
anatofuz
parents:
diff changeset
21 // CHECK: call i8* @objc_assign_weak(
anatofuz
parents:
diff changeset
22 // CHECK: call void @_Block_object_dispose(
anatofuz
parents:
diff changeset
23
anatofuz
parents:
diff changeset
24 // CHECK-LABEL: define linkonce_odr hidden void @__copy_helper_block_
anatofuz
parents:
diff changeset
25 // CHECK: call void @_Block_object_assign(
anatofuz
parents:
diff changeset
26
anatofuz
parents:
diff changeset
27 // CHECK-LABEL: define linkonce_odr hidden void @__destroy_helper_block_
anatofuz
parents:
diff changeset
28 // CHECK: call void @_Block_object_dispose(
anatofuz
parents:
diff changeset
29
anatofuz
parents:
diff changeset
30 @interface NSDictionary @end
anatofuz
parents:
diff changeset
31
anatofuz
parents:
diff changeset
32 void test1(NSDictionary * dict) {
anatofuz
parents:
diff changeset
33 ^{ (void)dict; }();
anatofuz
parents:
diff changeset
34 }
anatofuz
parents:
diff changeset
35
anatofuz
parents:
diff changeset
36 @interface D
anatofuz
parents:
diff changeset
37 @end
anatofuz
parents:
diff changeset
38
anatofuz
parents:
diff changeset
39 void foo() {
anatofuz
parents:
diff changeset
40 __block __weak D *weakSelf;
anatofuz
parents:
diff changeset
41 ^{ (void)weakSelf; };
anatofuz
parents:
diff changeset
42 D *l;
anatofuz
parents:
diff changeset
43 l = weakSelf;
anatofuz
parents:
diff changeset
44 weakSelf = l;
anatofuz
parents:
diff changeset
45 }
anatofuz
parents:
diff changeset
46
anatofuz
parents:
diff changeset
47 void (^__weak b)(void);
anatofuz
parents:
diff changeset
48
anatofuz
parents:
diff changeset
49 void test2() {
anatofuz
parents:
diff changeset
50 __block int i = 0;
anatofuz
parents:
diff changeset
51 b = ^ { ++i; };
anatofuz
parents:
diff changeset
52 }