@@ -338,20 +338,19 @@ void test10a(void) {
338338 __block void (^block)(void ) = ^{ block (); };
339339 // CHECK-LABEL: define void @test10a()
340340 // CHECK: [[BYREF:%.*]] = alloca [[BYREF_T:%.*]],
341+ // CHECK: [[BLOCK1:%.*]] = alloca <{ i8*, i32, i32, i8*, %[[STRUCT_BLOCK_DESCRIPTOR]]*, i8* }>, align 8
341342
342343 // Zero-initialization before running the initializer.
343344 // CHECK: [[T0:%.*]] = getelementptr inbounds [[BYREF_T]], [[BYREF_T]]* [[BYREF]], i32 0, i32 6
344345 // CHECK-NEXT: store void ()* null, void ()** [[T0]], align 8
345346
346347 // Run the initializer as an assignment.
347- // CHECK: [[T0:%.*]] = bitcast void ()* {{%.*}} to i8*
348- // CHECK-NEXT: [[T1:%.*]] = call i8* @llvm.objc.retainBlock(i8* [[T0]])
349- // CHECK-NEXT: [[T2:%.*]] = bitcast i8* [[T1]] to void ()*
348+ // CHECK: [[T2:%.*]] = bitcast <{ i8*, i32, i32, i8*, %[[STRUCT_BLOCK_DESCRIPTOR]]*, i8* }>* [[BLOCK1]] to void ()*
350349 // CHECK-NEXT: [[T3:%.*]] = getelementptr inbounds [[BYREF_T]], [[BYREF_T]]* [[BYREF]], i32 0, i32 1
351350 // CHECK-NEXT: [[T4:%.*]] = load [[BYREF_T]]*, [[BYREF_T]]** [[T3]]
352351 // CHECK-NEXT: [[T5:%.*]] = getelementptr inbounds [[BYREF_T]], [[BYREF_T]]* [[T4]], i32 0, i32 6
353352 // CHECK-NEXT: [[T6:%.*]] = load void ()*, void ()** [[T5]], align 8
354- // CHECK-NEXT: store void ()* {{%.*}} , void ()** [[T5]], align 8
353+ // CHECK-NEXT: store void ()* [[T2]] , void ()** [[T5]], align 8
355354 // CHECK-NEXT: [[T7:%.*]] = bitcast void ()* [[T6]] to i8*
356355 // CHECK-NEXT: call void @llvm.objc.release(i8* [[T7]])
357356
@@ -401,6 +400,7 @@ void test10b(void) {
401400
402401 // CHECK-LABEL: define void @test10b()
403402 // CHECK: [[BYREF:%.*]] = alloca [[BYREF_T:%.*]],
403+ // CHECK: [[BLOCK3:%.*]] = alloca <{ i8*, i32, i32, i8*, %[[STRUCT_BLOCK_DESCRIPTOR]]*, i8* }>, align 8
404404
405405 // Zero-initialize.
406406 // CHECK: [[T0:%.*]] = getelementptr inbounds [[BYREF_T]], [[BYREF_T]]* [[BYREF]], i32 0, i32 6
@@ -409,14 +409,12 @@ void test10b(void) {
409409 // CHECK-NEXT: [[SLOT:%.*]] = getelementptr inbounds [[BYREF_T]], [[BYREF_T]]* [[BYREF]], i32 0, i32 6
410410
411411 // The assignment.
412- // CHECK: [[T0:%.*]] = bitcast void ()* {{%.*}} to i8*
413- // CHECK-NEXT: [[T1:%.*]] = call i8* @llvm.objc.retainBlock(i8* [[T0]])
414- // CHECK-NEXT: [[T2:%.*]] = bitcast i8* [[T1]] to void ()*
412+ // CHECK: [[T2:%.*]] = bitcast <{ i8*, i32, i32, i8*, %[[STRUCT_BLOCK_DESCRIPTOR]]*, i8* }>* [[BLOCK3]] to void ()*
415413 // CHECK-NEXT: [[T3:%.*]] = getelementptr inbounds [[BYREF_T]], [[BYREF_T]]* [[BYREF]], i32 0, i32 1
416414 // CHECK-NEXT: [[T4:%.*]] = load [[BYREF_T]]*, [[BYREF_T]]** [[T3]]
417415 // CHECK-NEXT: [[T5:%.*]] = getelementptr inbounds [[BYREF_T]], [[BYREF_T]]* [[T4]], i32 0, i32 6
418416 // CHECK-NEXT: [[T6:%.*]] = load void ()*, void ()** [[T5]], align 8
419- // CHECK-NEXT: store void ()* {{%.*}} , void ()** [[T5]], align 8
417+ // CHECK-NEXT: store void ()* [[T2]] , void ()** [[T5]], align 8
420418 // CHECK-NEXT: [[T7:%.*]] = bitcast void ()* [[T6]] to i8*
421419 // CHECK-NEXT: call void @llvm.objc.release(i8* [[T7]])
422420
0 commit comments