Skip to content

Commit

Permalink
[Tests] Fix downstream tests after upstream llvm#99538
Browse files Browse the repository at this point in the history
Update tests with `getelementptr inbound nuw`

rdar://133702351
  • Loading branch information
cachemeifyoucan committed Aug 12, 2024
1 parent 74e3406 commit 88243a2
Show file tree
Hide file tree
Showing 3 changed files with 13 additions and 13 deletions.
4 changes: 2 additions & 2 deletions clang/test/CodeGen/ptrauth-blocks.c
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ void (^globalblock)(void) = ^{};
// CHECK-LABEL: define void @test_block_call()
void test_block_call() {
// CHECK: [[T0:%.*]] = load ptr, ptr @blockptr,
// CHECK-NEXT: [[FNADDR:%.*]] = getelementptr inbounds {{.*}}, ptr [[T0]], i32 0, i32 3
// CHECK-NEXT: [[FNADDR:%.*]] = getelementptr inbounds nuw {{.*}}, ptr [[T0]], i32 0, i32 3
// CHECK-NEXT: [[T1:%.*]] = load ptr, ptr [[FNADDR]],
// CHECK-NEXT: [[DISC:%.*]] = ptrtoint ptr [[FNADDR]] to i64
// CHECK-NEXT: call void [[T1]](ptr noundef [[T0]]) [ "ptrauth"(i32 0, i64 [[DISC]]) ]
Expand All @@ -22,7 +22,7 @@ void use_block(int (^)(void));
void test_block_literal(int i) {
// CHECK: [[I:%.*]] = alloca i32,
// CHECK-NEXT: [[BLOCK:%.*]] = alloca [[BLOCK_T:.*]], align
// CHECK: [[FNPTRADDR:%.*]] = getelementptr inbounds [[BLOCK_T]], ptr [[BLOCK]], i32 0, i32 3
// CHECK: [[FNPTRADDR:%.*]] = getelementptr inbounds nuw [[BLOCK_T]], ptr [[BLOCK]], i32 0, i32 3
// CHECK-NEXT: [[DISCRIMINATOR:%.*]] = ptrtoint ptr [[FNPTRADDR]] to i64
// CHECK-NEXT: [[SIGNED:%.*]] = call i64 @llvm.ptrauth.sign(i64 ptrtoint (ptr {{@.*}} to i64), i32 0, i64 [[DISCRIMINATOR]])
// CHECK-NEXT: [[T0:%.*]] = inttoptr i64 [[SIGNED]] to ptr
Expand Down
16 changes: 8 additions & 8 deletions clang/test/CodeGenCXX/ptrauth-qualifier-struct.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -57,9 +57,9 @@ void testMoveConstructor(SA a) {
// CHECK: store ptr %[[THIS]], ptr %[[THIS_ADDR]], align 8
// CHECK: store ptr %[[V0:.*]], ptr %[[_ADDR]], align 8
// CHECK: %[[THISI:.*]] = load ptr, ptr %[[THIS_ADDR]], align 8
// CHECK: %[[M0:.*]] = getelementptr inbounds %[[STRUCT_SA]], ptr %[[THISI]], i32 0, i32 0
// CHECK: %[[M0:.*]] = getelementptr inbounds nuw %[[STRUCT_SA]], ptr %[[THISI]], i32 0, i32 0
// CHECK: %[[V1:.*]] = load ptr, ptr %[[_ADDR]], align 8
// CHECK: %[[M02:.*]] = getelementptr inbounds %[[STRUCT_SA]], ptr %[[V1]], i32 0, i32 0
// CHECK: %[[M02:.*]] = getelementptr inbounds nuw %[[STRUCT_SA]], ptr %[[V1]], i32 0, i32 0
// CHECK: %[[V2:.*]] = load ptr, ptr %[[M02]], align 8
// CHECK: %[[V3:.*]] = ptrtoint ptr %[[M02]] to i64
// CHECK: %[[V4:.*]] = call i64 @llvm.ptrauth.blend(i64 %[[V3]], i64 50)
Expand All @@ -82,9 +82,9 @@ void testCopyAssignment(SA a) {
// CHECK: store ptr %[[THIS]], ptr %[[THIS_ADDR]], align 8
// CHECK: store ptr %[[V0:.*]], ptr %[[_ADDR]], align 8
// CHECK: %[[THISI:.*]] = load ptr, ptr %[[THIS_ADDR]], align 8
// CHECK: %[[M0:.*]] = getelementptr inbounds %[[STRUCT_SA]], ptr %[[THISI]], i32 0, i32 0
// CHECK: %[[M0:.*]] = getelementptr inbounds nuw %[[STRUCT_SA]], ptr %[[THISI]], i32 0, i32 0
// CHECK: %[[V1:.*]] = load ptr, ptr %[[_ADDR]], align 8
// CHECK: %[[M02:.*]] = getelementptr inbounds %[[STRUCT_SA]], ptr %[[V1]], i32 0, i32 0
// CHECK: %[[M02:.*]] = getelementptr inbounds nuw %[[STRUCT_SA]], ptr %[[V1]], i32 0, i32 0
// CHECK: %[[V2:.*]] = load ptr, ptr %[[M02]], align 8
// CHECK: %[[V3:.*]] = ptrtoint ptr %[[M02]] to i64
// CHECK: %[[V4:.*]] = call i64 @llvm.ptrauth.blend(i64 %[[V3]], i64 50)
Expand Down Expand Up @@ -136,9 +136,9 @@ void testMoveAssignment(SI a) {
// CHECK: store ptr %[[V0:.*]], ptr %[[_ADDR]], align 8
// CHECK: %[[THIS1:.*]] = load ptr, ptr %[[THIS_ADDR]], align 8
// CHECK: store ptr %[[THIS1]], ptr %[[RETVAL]], align 8
// CHECK: %[[M0:.*]] = getelementptr inbounds %[[STRUCT_SA]], ptr %[[THIS1]], i32 0, i32 0
// CHECK: %[[M0:.*]] = getelementptr inbounds nuw %[[STRUCT_SA]], ptr %[[THIS1]], i32 0, i32 0
// CHECK: %[[V1:.*]] = load ptr, ptr %[[_ADDR]], align 8
// CHECK: %[[M02:.*]] = getelementptr inbounds %[[STRUCT_SA]], ptr %[[V1]], i32 0, i32 0
// CHECK: %[[M02:.*]] = getelementptr inbounds nuw %[[STRUCT_SA]], ptr %[[V1]], i32 0, i32 0
// CHECK: %[[V2:.*]] = load ptr, ptr %[[M02]], align 8
// CHECK: %[[V3:.*]] = ptrtoint ptr %[[M02]] to i64
// CHECK: %[[V4:.*]] = call i64 @llvm.ptrauth.blend(i64 %[[V3]], i64 50)
Expand All @@ -155,9 +155,9 @@ void testMoveAssignment(SI a) {
// CHECK: store ptr %[[V0:.*]], ptr %[[_ADDR]], align 8
// CHECK: %[[THIS1:.*]] = load ptr, ptr %[[THIS_ADDR]], align 8
// CHECK: store ptr %[[THIS1]], ptr %[[RETVAL]], align 8
// CHECK: %[[M0:.*]] = getelementptr inbounds %[[STRUCT_SA]], ptr %[[THIS1]], i32 0, i32 0
// CHECK: %[[M0:.*]] = getelementptr inbounds nuw %[[STRUCT_SA]], ptr %[[THIS1]], i32 0, i32 0
// CHECK: %[[V1:.*]] = load ptr, ptr %[[_ADDR]], align 8
// CHECK: %[[M02:.*]] = getelementptr inbounds %[[STRUCT_SA]], ptr %[[V1]], i32 0, i32 0
// CHECK: %[[M02:.*]] = getelementptr inbounds nuw %[[STRUCT_SA]], ptr %[[V1]], i32 0, i32 0
// CHECK: %[[V2:.*]] = load ptr, ptr %[[M02]], align 8
// CHECK: %[[V3:.*]] = ptrtoint ptr %[[M02]] to i64
// CHECK: %[[V4:.*]] = call i64 @llvm.ptrauth.blend(i64 %[[V3]], i64 50)
Expand Down
6 changes: 3 additions & 3 deletions clang/test/CodeGenObjC/ptrauth-blocks.m
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ void test_block_call() {
void test_block_literal(int i) {
// CHECK: [[I:%.*]] = alloca i32,
// CHECK-NEXT: [[BLOCK:%.*]] = alloca [[BLOCK_T:.*]], align
// CHECK: [[FNPTRADDR:%.*]] = getelementptr inbounds [[BLOCK_T]], ptr [[BLOCK]], i32 0, i32 3
// CHECK: [[FNPTRADDR:%.*]] = getelementptr inbounds nuw [[BLOCK_T]], ptr [[BLOCK]], i32 0, i32 3
// CHECK-NEXT: [[DISCRIMINATOR:%.*]] = ptrtoint ptr [[FNPTRADDR]] to i64
// CHECK-NEXT: [[SIGNED:%.*]] = call i64 @llvm.ptrauth.sign(i64 ptrtoint (ptr {{@.*}} to i64), i32 0, i64 [[DISCRIMINATOR]])
// CHECK-NEXT: [[T0:%.*]] = inttoptr i64 [[SIGNED]] to ptr
Expand All @@ -46,12 +46,12 @@ void test_copy_destroy(A *a) {

// CHECK-LABEL: define void @test_byref_copy_destroy
void test_byref_copy_destroy(A *a) {
// CHECK: [[COPY_FIELD:%.*]] = getelementptr inbounds [[BYREF_T:%.*]], ptr [[BYREF:%.*]], i32 0, i32 4
// CHECK: [[COPY_FIELD:%.*]] = getelementptr inbounds nuw [[BYREF_T:%.*]], ptr [[BYREF:%.*]], i32 0, i32 4
// CHECK-NEXT: [[T0:%.*]] = ptrtoint ptr [[COPY_FIELD]] to i64
// CHECK-NEXT: [[T1:%.*]] = call i64 @llvm.ptrauth.sign(i64 ptrtoint (ptr {{@.*}} to i64), i32 0, i64 [[T0]])
// CHECK-NEXT: [[T2:%.*]] = inttoptr i64 [[T1]] to ptr
// CHECK-NEXT: store ptr [[T2]], ptr [[COPY_FIELD]], align 8
// CHECK: [[DISPOSE_FIELD:%.*]] = getelementptr inbounds [[BYREF_T]], ptr [[BYREF]], i32 0, i32 5
// CHECK: [[DISPOSE_FIELD:%.*]] = getelementptr inbounds nuw [[BYREF_T]], ptr [[BYREF]], i32 0, i32 5
// CHECK-NEXT: [[T0:%.*]] = ptrtoint ptr [[DISPOSE_FIELD]] to i64
// CHECK-NEXT: [[T1:%.*]] = call i64 @llvm.ptrauth.sign(i64 ptrtoint (ptr {{@.*}} to i64), i32 0, i64 [[T0]])
// CHECK-NEXT: [[T2:%.*]] = inttoptr i64 [[T1]] to ptr
Expand Down

0 comments on commit 88243a2

Please sign in to comment.