Skip to content

Commit 00c1eb8

Browse files
Merge pull request #84810 from swiftlang/jepa-main2
[test] IRGen: Fix some ptrauth tests after rebranch merger
2 parents ee6d801 + a6abccd commit 00c1eb8

File tree

4 files changed

+19
-16
lines changed

4 files changed

+19
-16
lines changed

test/IRGen/ptrauth-blocks.sil

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -20,13 +20,13 @@ entry(%0 : $*@block_storage Builtin.RawPointer):
2020
return %b : $@convention(block) () -> ()
2121
}
2222
// CHECK-LABEL: define swiftcc ptr @init_header_trivial(ptr
23-
// CHECK: [[HEADER:%.*]] = getelementptr inbounds { %objc_block, ptr }, ptr %0, i32 0, i32 0
24-
// CHECK: [[SLOT:%.*]] = getelementptr inbounds %objc_block, ptr [[HEADER]], i32 0, i32 3
23+
// CHECK: [[HEADER:%.*]] = getelementptr inbounds{{.*}} { %objc_block, ptr }, ptr %0, i32 0, i32 0
24+
// CHECK: [[SLOT:%.*]] = getelementptr inbounds{{.*}} %objc_block, ptr [[HEADER]], i32 0, i32 3
2525
// CHECK: [[T0:%.*]] = ptrtoint ptr [[SLOT]] to i64
2626
// CHECK: [[SIGNED:%.*]] = call i64 @llvm.ptrauth.sign(i64 ptrtoint (ptr @invoke_trivial to i64), i32 0, i64 [[T0]])
2727
// CHECK: [[T0:%.*]] = inttoptr i64 [[SIGNED]] to ptr
2828
// CHECK: store ptr [[T0]], ptr [[SLOT]],
29-
// CHECK: [[SLOT:%.*]] = getelementptr inbounds %objc_block, ptr [[HEADER]], i32 0, i32 4
29+
// CHECK: [[SLOT:%.*]] = getelementptr inbounds{{.*}} %objc_block, ptr [[HEADER]], i32 0, i32 4
3030
// CHECK: store ptr [[TRIVIAL_BLOCK_DESCRIPTOR]], ptr [[SLOT]]
3131

3232
sil @invoke_trivial : $@convention(c) (@inout_aliasable @block_storage Builtin.RawPointer) -> () {
@@ -42,13 +42,13 @@ entry(%0 : $*@block_storage Builtin.NativeObject):
4242
return %b : $@convention(block) () -> ()
4343
}
4444
// CHECK-LABEL: define swiftcc ptr @init_header_nontrivial(ptr
45-
// CHECK: [[HEADER:%.*]] = getelementptr inbounds { %objc_block, ptr }, ptr %0, i32 0, i32 0
46-
// CHECK: [[SLOT:%.*]] = getelementptr inbounds %objc_block, ptr [[HEADER]], i32 0, i32 3
45+
// CHECK: [[HEADER:%.*]] = getelementptr inbounds{{.*}} { %objc_block, ptr }, ptr %0, i32 0, i32 0
46+
// CHECK: [[SLOT:%.*]] = getelementptr inbounds{{.*}} %objc_block, ptr [[HEADER]], i32 0, i32 3
4747
// CHECK: [[T0:%.*]] = ptrtoint ptr [[SLOT]] to i64
4848
// CHECK: [[SIGNED:%.*]] = call i64 @llvm.ptrauth.sign(i64 ptrtoint (ptr @invoke_nontrivial to i64), i32 0, i64 [[T0]])
4949
// CHECK: [[T0:%.*]] = inttoptr i64 [[SIGNED]] to ptr
5050
// CHECK: store ptr [[T0]], ptr [[SLOT]],
51-
// CHECK: [[SLOT:%.*]] = getelementptr inbounds %objc_block, ptr [[HEADER]], i32 0, i32 4
51+
// CHECK: [[SLOT:%.*]] = getelementptr inbounds{{.*}} %objc_block, ptr [[HEADER]], i32 0, i32 4
5252
// CHECK: store ptr [[NONTRIVIAL_BLOCK_DESCRIPTOR]], ptr [[SLOT]]
5353

5454
sil @invoke_nontrivial : $@convention(c) (@inout_aliasable @block_storage Builtin.NativeObject) -> () {
@@ -63,7 +63,7 @@ entry(%0 : $@convention(block) () -> ()):
6363
return undef : $()
6464
}
6565
// CHECK-LABEL: define swiftcc void @invoke_block(ptr %0)
66-
// CHECK: [[SLOT:%.*]] = getelementptr inbounds %objc_block, ptr %0, i32 0, i32 3
66+
// CHECK: [[SLOT:%.*]] = getelementptr inbounds{{.*}} %objc_block, ptr %0, i32 0, i32 3
6767
// CHECK-NEXT: [[T0:%.*]] = load ptr, ptr [[SLOT]], align
6868
// CHECK-NEXT: [[DISC:%.*]] = ptrtoint ptr [[SLOT]] to i64
6969
// CHECK-NEXT: call void [[T0]](ptr %0) [ "ptrauth"(i32 0, i64 [[DISC]]) ]

test/IRGen/ptrauth-global.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313

1414
// CHECK2: define {{.*}}swiftcc void @"$s1A4testyyF"()
1515
// CHECK2: [[T:%.*]] = call swiftcc ptr @"$s1A9ContainerV3AllAA1GVySiGycAA1VVySiGcycvau"()
16-
// CHECK2: [[T1:%.*]] = getelementptr inbounds %swift.function, ptr [[T]], i32 0, i32 0
16+
// CHECK2: [[T1:%.*]] = getelementptr inbounds{{.*}} %swift.function, ptr [[T]], i32 0, i32 0
1717
// CHECK2: [[T4:%.*]] = load ptr, ptr [[T1]]
1818
// CHECK2: call swiftcc { ptr, ptr } [[T4]]({{.*}}) [ "ptrauth"(i32 0, i64 58141) ]
1919

test/IRGen/ptrauth-partial-apply.sil

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ bb0(%0 : $@convention(thin) (Builtin.Int32, Builtin.Int32) -> (), %1 : $Builtin.
1414
}
1515
// CHECK-LABEL: define swiftcc { ptr, ptr } @test_thin_indirect(ptr %0, i32 %1)
1616
// CHECK: [[ALLOC:%.*]] = call {{.*}}swift_allocObject(
17-
// CHECK: [[SLOT:%.*]] = getelementptr inbounds [[CTXT_TY:<{ %swift.refcounted, i32, i32, ptr }>]], ptr [[ALLOC]], i32 0, i32 3
17+
// CHECK: [[SLOT:%.*]] = getelementptr inbounds{{.*}} [[CTXT_TY:<{ %swift.refcounted, i32, i32, ptr }>]], ptr [[ALLOC]], i32 0, i32 3
1818
// CHECK: [[T0:%.*]] = ptrtoint ptr [[SLOT]] to i64
1919
// CHECK: [[DISC:%.*]] = call i64 @llvm.ptrauth.blend(i64 [[T0]], i64 7185)
2020
// CHECK: [[T0:%.*]] = ptrtoint ptr %0 to i64
@@ -24,7 +24,7 @@ bb0(%0 : $@convention(thin) (Builtin.Int32, Builtin.Int32) -> (), %1 : $Builtin.
2424
// CHECK: insertvalue { ptr, ptr } { ptr @"$sTA.ptrauth", ptr undef }, ptr {{.*}}, 1
2525

2626
// CHECK-LABEL: define internal swiftcc void @"$sTA"(ptr swiftself %0)
27-
// CHECK: [[SLOT:%.*]] = getelementptr inbounds [[CTXT_TY:<{ %swift.refcounted, i32, i32, ptr }>]], ptr %0, i32 0, i32 3
27+
// CHECK: [[SLOT:%.*]] = getelementptr inbounds{{.*}} [[CTXT_TY:<{ %swift.refcounted, i32, i32, ptr }>]], ptr %0, i32 0, i32 3
2828
// CHECK: [[T0:%.*]] = load ptr, ptr [[SLOT]], align 8
2929
// CHECK: [[T1:%.*]] = ptrtoint ptr [[SLOT]] to i64
3030
// CHECK: [[DISC:%.*]] = call i64 @llvm.ptrauth.blend(i64 [[T1]], i64 7185)
@@ -37,7 +37,7 @@ bb0(%0 : $@callee_owned (Builtin.Int32, Builtin.Int32) -> (), %1 : $Builtin.Int3
3737
}
3838
// CHECK-LABEL: define swiftcc { ptr, ptr } @test_thick_indirect(ptr %0, ptr %1, i32 %2)
3939
// CHECK: [[ALLOC:%.*]] = call {{.*}}swift_allocObject(
40-
// CHECK: [[SLOT:%.*]] = getelementptr inbounds [[CTXT_TY:<{ %swift.refcounted, i32, i32, ptr, ptr }>]], ptr {{%.*}}, i32 0, i32 4
40+
// CHECK: [[SLOT:%.*]] = getelementptr inbounds{{.*}} [[CTXT_TY:<{ %swift.refcounted, i32, i32, ptr, ptr }>]], ptr {{%.*}}, i32 0, i32 4
4141
// CHECK: [[T0:%.*]] = ptrtoint ptr [[SLOT]] to i64
4242
// CHECK: [[DISC:%.*]] = call i64 @llvm.ptrauth.blend(i64 [[T0]], i64 7185)
4343
// CHECK: [[T0:%.*]] = ptrtoint ptr %0 to i64
@@ -47,7 +47,7 @@ bb0(%0 : $@callee_owned (Builtin.Int32, Builtin.Int32) -> (), %1 : $Builtin.Int3
4747
// CHECK: insertvalue { ptr, ptr } { ptr @"$sTA{{.*}}.ptrauth", ptr undef }, ptr {{.*}}, 1
4848

4949
// CHECK-LABEL: define internal swiftcc void @"$sTA{{.*}}"(ptr swiftself %0)
50-
// CHECK: [[SLOT:%.*]] = getelementptr inbounds <{ %swift.refcounted, i32, i32, ptr, ptr }>, ptr %0, i32 0, i32 4
50+
// CHECK: [[SLOT:%.*]] = getelementptr inbounds{{.*}} <{ %swift.refcounted, i32, i32, ptr, ptr }>, ptr %0, i32 0, i32 4
5151
// CHECK: [[T0:%.*]] = load ptr, ptr [[SLOT]], align 8
5252
// CHECK: [[T1:%.*]] = ptrtoint ptr [[SLOT]] to i64
5353
// CHECK: [[DISC:%.*]] = call i64 @llvm.ptrauth.blend(i64 [[T1]], i64 7185)

test/IRGen/ptrauth_field_fptr_import.swift

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,9 @@
22
// REQUIRES: CPU=arm64e
33
// REQUIRES: OS=ios
44

5+
// rdar://162381284
6+
// XFAIL: CPU=arm64e && OS=ios
7+
58
import PointerAuth
69

710
// CHECK: define hidden swiftcc i32 @"$s25ptrauth_field_fptr_import05test_B8_fn_reads5Int32VyF"() #0 {
@@ -11,7 +14,7 @@ import PointerAuth
1114
// CHECK: br label %9
1215
// CHECK: 9:
1316
// CHECK: [[SECURESTRUCT:%.*]] = phi ptr [ [[CAST0]], {{.*}} ]
14-
// CHECK: %.secure_func_ptr = getelementptr inbounds %TSo12SecureStructV, ptr [[SECURESTRUCT]], i32 0, i32 0
17+
// CHECK: %.secure_func_ptr = getelementptr inbounds{{.*}} %TSo12SecureStructV, ptr [[SECURESTRUCT]], i32 0, i32 0
1518
// CHECK: [[PTR:%.*]] = load ptr, ptr %.secure_func_ptr, align 8
1619
// CHECK: [[COND:%.*]] = icmp ne ptr [[PTR]], null
1720
// CHECK: br i1 [[COND]], label %resign-nonnull, label %resign-null
@@ -33,7 +36,7 @@ func test_field_fn_read() -> Int32 {
3336

3437
// CHECK-LABEL: define hidden swiftcc void @"$s25ptrauth_field_fptr_import05test_B14_fn_ptr_modifyyyF"() #0 {
3538
// CHECK: [[SECURESTRUCT:%.*]] = phi ptr [
36-
// CHECK: %.secure_func_ptr = getelementptr inbounds %TSo12SecureStructV, ptr [[SECURESTRUCT]], i32 0, i32 0
39+
// CHECK: %.secure_func_ptr = getelementptr inbounds{{.*}} %TSo12SecureStructV, ptr [[SECURESTRUCT]], i32 0, i32 0
3740
// CHECK: store i64 ptrtoint (ptr @returnInt.ptrauth to i64), ptr %ptrauth.temp, align 8
3841
// CHECK: [[LD:%.*]] = load ptr, ptr %ptrauth.temp, align 8
3942
// CHECK: [[COND:%.*]] = icmp ne ptr [[LD]], null
@@ -53,7 +56,7 @@ func test_field_fn_ptr_modify() {
5356
// CHECK: br label %[[L1:[0-9]+]]
5457
// CHECK: [[L1]]:
5558
// CHECK: [[AddressDiscriminatedSecureStruct:%.*]] = phi ptr [ [[CAST0]]
56-
// CHECK: %.secure_func_ptr = getelementptr inbounds %TSo32AddressDiscriminatedSecureStructV, ptr [[AddressDiscriminatedSecureStruct]], i32 0, i32 0
59+
// CHECK: %.secure_func_ptr = getelementptr inbounds{{.*}} %TSo32AddressDiscriminatedSecureStructV, ptr [[AddressDiscriminatedSecureStruct]], i32 0, i32 0
5760
// CHECK: [[PTR:%.*]] = load ptr, ptr %.secure_func_ptr, align 8
5861
// CHECK: [[COND:%.*]] = icmp ne ptr [[PTR]], null
5962
// CHECK: br i1 [[COND]], label %resign-nonnull, label %resign-null
@@ -79,7 +82,7 @@ func test_addr_discriminated_field_fn_read() -> Int32 {
7982
// CHECK: br label %[[L1:[0-9]+]]
8083
// CHECK: [[L1]]:
8184
// CHECK: [[AddressDiscriminatedSecureStruct:%.*]] = phi ptr [ [[CAST0]]
82-
// CHECK: %.secure_func_ptr = getelementptr inbounds %TSo32AddressDiscriminatedSecureStructV, ptr [[AddressDiscriminatedSecureStruct]], i32 0, i32 0
85+
// CHECK: %.secure_func_ptr = getelementptr inbounds{{.*}} %TSo32AddressDiscriminatedSecureStructV, ptr [[AddressDiscriminatedSecureStruct]], i32 0, i32 0
8386
// CHECK: store i64 ptrtoint (ptr @returnInt.ptrauth to i64), ptr %ptrauth.temp, align 8
8487
// CHECK: [[LD:%.*]] = load ptr, ptr %ptrauth.temp, align 8
8588
// CHECK: [[COND:%.*]] = icmp ne ptr [[LD]], null

0 commit comments

Comments
 (0)