diff options
Diffstat (limited to 'test/CodeGenObjC/arc-foreach.m')
-rw-r--r-- | test/CodeGenObjC/arc-foreach.m | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/test/CodeGenObjC/arc-foreach.m b/test/CodeGenObjC/arc-foreach.m index 9449b3d2d6..de550328f0 100644 --- a/test/CodeGenObjC/arc-foreach.m +++ b/test/CodeGenObjC/arc-foreach.m @@ -29,6 +29,9 @@ void test0(NSArray *array) { // CHECK-LP64-NEXT: [[BUFFER:%.*]] = alloca [16 x i8*], align 8 // CHECK-LP64-NEXT: [[BLOCK:%.*]] = alloca [[BLOCK_T:<{.*}>]], +// CHECK-LP64-NEXT: [[CAP_ACTIVE:%.*]] = alloca i1 +// CHECK-LP64-NEXT: store i1 false, i1* [[CAP_ACTIVE]] + // Initialize 'array'. // CHECK-LP64-NEXT: [[T0:%.*]] = bitcast [[ARRAY_T:%.*]]* {{%.*}} to i8* // CHECK-LP64-NEXT: [[T1:%.*]] = call i8* @objc_retain(i8* [[T0]]) @@ -60,13 +63,15 @@ void test0(NSArray *array) { // CHECK-LP64-NEXT: [[T3:%.*]] = load i8** [[T2]] // CHECK-LP64-NEXT: store i8* [[T3]], i8** [[X]] +// CHECK-LP64: [[D0:%.*]] = getelementptr inbounds [[BLOCK_T]]* [[BLOCK]], i32 0, i32 5 // CHECK-LP64: [[T0:%.*]] = getelementptr inbounds [[BLOCK_T]]* [[BLOCK]], i32 0, i32 5 // CHECK-LP64-NEXT: [[T1:%.*]] = load i8** [[X]] // CHECK-LP64-NEXT: [[T2:%.*]] = call i8* @objc_retain(i8* [[T1]]) // CHECK-LP64-NEXT: store i8* [[T2]], i8** [[T0]] +// CHECK-LP64-NEXT: store i1 true, i1* [[CAP_ACTIVE]] // CHECK-LP64-NEXT: [[T1:%.*]] = bitcast [[BLOCK_T]]* [[BLOCK]] // CHECK-LP64: call void @use_block( -// CHECK-LP64-NEXT: [[T1:%.*]] = load i8** [[T0]] +// CHECK-LP64-NEXT: [[T1:%.*]] = load i8** [[D0]] // CHECK-LP64-NEXT: call void @objc_release(i8* [[T1]]) // CHECK-LP64: [[T0:%.*]] = load i8** @"\01L_OBJC_SELECTOR_REFERENCES_ @@ -108,13 +113,15 @@ void test1(NSArray *array) { // CHECK-LP64-NEXT: [[T3:%.*]] = load i8** [[T2]] // CHECK-LP64-NEXT: call i8* @objc_initWeak(i8** [[X]], i8* [[T3]]) +// CHECK-LP64: [[D0:%.*]] = getelementptr inbounds [[BLOCK_T]]* [[BLOCK]], i32 0, i32 5 // CHECK-LP64: [[T0:%.*]] = getelementptr inbounds [[BLOCK_T]]* [[BLOCK]], i32 0, i32 5 // CHECK-LP64-NEXT: [[T1:%.*]] = call i8* @objc_loadWeak(i8** [[X]]) // CHECK-LP64-NEXT: call i8* @objc_initWeak(i8** [[T0]], i8* [[T1]]) +// CHECK-LP64-NEXT: store i1 true, // CHECK-LP64-NEXT: [[T1:%.*]] = bitcast [[BLOCK_T]]* [[BLOCK]] to // CHECK-LP64: call void @use_block -// CHECK-LP64-NEXT: call void @objc_destroyWeak(i8** [[T0]]) -// CHECK-LP64-NEXT: call void @objc_destroyWeak(i8** [[X]]) +// CHECK-LP64: call void @objc_destroyWeak(i8** [[D0]]) +// CHECK-LP64: call void @objc_destroyWeak(i8** [[X]]) // rdar://problem/9817306 @interface Test2 |