Skip to content

Commit 88243a2

Browse files
[Tests] Fix downstream tests after upstream llvm#99538
Update tests with `getelementptr inbound nuw` rdar://133702351
1 parent 74e3406 commit 88243a2

File tree

3 files changed

+13
-13
lines changed

3 files changed

+13
-13
lines changed

clang/test/CodeGen/ptrauth-blocks.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ void (^globalblock)(void) = ^{};
99
// CHECK-LABEL: define void @test_block_call()
1010
void test_block_call() {
1111
// CHECK: [[T0:%.*]] = load ptr, ptr @blockptr,
12-
// CHECK-NEXT: [[FNADDR:%.*]] = getelementptr inbounds {{.*}}, ptr [[T0]], i32 0, i32 3
12+
// CHECK-NEXT: [[FNADDR:%.*]] = getelementptr inbounds nuw {{.*}}, ptr [[T0]], i32 0, i32 3
1313
// CHECK-NEXT: [[T1:%.*]] = load ptr, ptr [[FNADDR]],
1414
// CHECK-NEXT: [[DISC:%.*]] = ptrtoint ptr [[FNADDR]] to i64
1515
// CHECK-NEXT: call void [[T1]](ptr noundef [[T0]]) [ "ptrauth"(i32 0, i64 [[DISC]]) ]
@@ -22,7 +22,7 @@ void use_block(int (^)(void));
2222
void test_block_literal(int i) {
2323
// CHECK: [[I:%.*]] = alloca i32,
2424
// CHECK-NEXT: [[BLOCK:%.*]] = alloca [[BLOCK_T:.*]], align
25-
// CHECK: [[FNPTRADDR:%.*]] = getelementptr inbounds [[BLOCK_T]], ptr [[BLOCK]], i32 0, i32 3
25+
// CHECK: [[FNPTRADDR:%.*]] = getelementptr inbounds nuw [[BLOCK_T]], ptr [[BLOCK]], i32 0, i32 3
2626
// CHECK-NEXT: [[DISCRIMINATOR:%.*]] = ptrtoint ptr [[FNPTRADDR]] to i64
2727
// CHECK-NEXT: [[SIGNED:%.*]] = call i64 @llvm.ptrauth.sign(i64 ptrtoint (ptr {{@.*}} to i64), i32 0, i64 [[DISCRIMINATOR]])
2828
// CHECK-NEXT: [[T0:%.*]] = inttoptr i64 [[SIGNED]] to ptr

clang/test/CodeGenCXX/ptrauth-qualifier-struct.cpp

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -57,9 +57,9 @@ void testMoveConstructor(SA a) {
5757
// CHECK: store ptr %[[THIS]], ptr %[[THIS_ADDR]], align 8
5858
// CHECK: store ptr %[[V0:.*]], ptr %[[_ADDR]], align 8
5959
// CHECK: %[[THISI:.*]] = load ptr, ptr %[[THIS_ADDR]], align 8
60-
// CHECK: %[[M0:.*]] = getelementptr inbounds %[[STRUCT_SA]], ptr %[[THISI]], i32 0, i32 0
60+
// CHECK: %[[M0:.*]] = getelementptr inbounds nuw %[[STRUCT_SA]], ptr %[[THISI]], i32 0, i32 0
6161
// CHECK: %[[V1:.*]] = load ptr, ptr %[[_ADDR]], align 8
62-
// CHECK: %[[M02:.*]] = getelementptr inbounds %[[STRUCT_SA]], ptr %[[V1]], i32 0, i32 0
62+
// CHECK: %[[M02:.*]] = getelementptr inbounds nuw %[[STRUCT_SA]], ptr %[[V1]], i32 0, i32 0
6363
// CHECK: %[[V2:.*]] = load ptr, ptr %[[M02]], align 8
6464
// CHECK: %[[V3:.*]] = ptrtoint ptr %[[M02]] to i64
6565
// CHECK: %[[V4:.*]] = call i64 @llvm.ptrauth.blend(i64 %[[V3]], i64 50)
@@ -82,9 +82,9 @@ void testCopyAssignment(SA a) {
8282
// CHECK: store ptr %[[THIS]], ptr %[[THIS_ADDR]], align 8
8383
// CHECK: store ptr %[[V0:.*]], ptr %[[_ADDR]], align 8
8484
// CHECK: %[[THISI:.*]] = load ptr, ptr %[[THIS_ADDR]], align 8
85-
// CHECK: %[[M0:.*]] = getelementptr inbounds %[[STRUCT_SA]], ptr %[[THISI]], i32 0, i32 0
85+
// CHECK: %[[M0:.*]] = getelementptr inbounds nuw %[[STRUCT_SA]], ptr %[[THISI]], i32 0, i32 0
8686
// CHECK: %[[V1:.*]] = load ptr, ptr %[[_ADDR]], align 8
87-
// CHECK: %[[M02:.*]] = getelementptr inbounds %[[STRUCT_SA]], ptr %[[V1]], i32 0, i32 0
87+
// CHECK: %[[M02:.*]] = getelementptr inbounds nuw %[[STRUCT_SA]], ptr %[[V1]], i32 0, i32 0
8888
// CHECK: %[[V2:.*]] = load ptr, ptr %[[M02]], align 8
8989
// CHECK: %[[V3:.*]] = ptrtoint ptr %[[M02]] to i64
9090
// CHECK: %[[V4:.*]] = call i64 @llvm.ptrauth.blend(i64 %[[V3]], i64 50)
@@ -136,9 +136,9 @@ void testMoveAssignment(SI a) {
136136
// CHECK: store ptr %[[V0:.*]], ptr %[[_ADDR]], align 8
137137
// CHECK: %[[THIS1:.*]] = load ptr, ptr %[[THIS_ADDR]], align 8
138138
// CHECK: store ptr %[[THIS1]], ptr %[[RETVAL]], align 8
139-
// CHECK: %[[M0:.*]] = getelementptr inbounds %[[STRUCT_SA]], ptr %[[THIS1]], i32 0, i32 0
139+
// CHECK: %[[M0:.*]] = getelementptr inbounds nuw %[[STRUCT_SA]], ptr %[[THIS1]], i32 0, i32 0
140140
// CHECK: %[[V1:.*]] = load ptr, ptr %[[_ADDR]], align 8
141-
// CHECK: %[[M02:.*]] = getelementptr inbounds %[[STRUCT_SA]], ptr %[[V1]], i32 0, i32 0
141+
// CHECK: %[[M02:.*]] = getelementptr inbounds nuw %[[STRUCT_SA]], ptr %[[V1]], i32 0, i32 0
142142
// CHECK: %[[V2:.*]] = load ptr, ptr %[[M02]], align 8
143143
// CHECK: %[[V3:.*]] = ptrtoint ptr %[[M02]] to i64
144144
// CHECK: %[[V4:.*]] = call i64 @llvm.ptrauth.blend(i64 %[[V3]], i64 50)
@@ -155,9 +155,9 @@ void testMoveAssignment(SI a) {
155155
// CHECK: store ptr %[[V0:.*]], ptr %[[_ADDR]], align 8
156156
// CHECK: %[[THIS1:.*]] = load ptr, ptr %[[THIS_ADDR]], align 8
157157
// CHECK: store ptr %[[THIS1]], ptr %[[RETVAL]], align 8
158-
// CHECK: %[[M0:.*]] = getelementptr inbounds %[[STRUCT_SA]], ptr %[[THIS1]], i32 0, i32 0
158+
// CHECK: %[[M0:.*]] = getelementptr inbounds nuw %[[STRUCT_SA]], ptr %[[THIS1]], i32 0, i32 0
159159
// CHECK: %[[V1:.*]] = load ptr, ptr %[[_ADDR]], align 8
160-
// CHECK: %[[M02:.*]] = getelementptr inbounds %[[STRUCT_SA]], ptr %[[V1]], i32 0, i32 0
160+
// CHECK: %[[M02:.*]] = getelementptr inbounds nuw %[[STRUCT_SA]], ptr %[[V1]], i32 0, i32 0
161161
// CHECK: %[[V2:.*]] = load ptr, ptr %[[M02]], align 8
162162
// CHECK: %[[V3:.*]] = ptrtoint ptr %[[M02]] to i64
163163
// CHECK: %[[V4:.*]] = call i64 @llvm.ptrauth.blend(i64 %[[V3]], i64 50)

clang/test/CodeGenObjC/ptrauth-blocks.m

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ void test_block_call() {
3030
void test_block_literal(int i) {
3131
// CHECK: [[I:%.*]] = alloca i32,
3232
// CHECK-NEXT: [[BLOCK:%.*]] = alloca [[BLOCK_T:.*]], align
33-
// CHECK: [[FNPTRADDR:%.*]] = getelementptr inbounds [[BLOCK_T]], ptr [[BLOCK]], i32 0, i32 3
33+
// CHECK: [[FNPTRADDR:%.*]] = getelementptr inbounds nuw [[BLOCK_T]], ptr [[BLOCK]], i32 0, i32 3
3434
// CHECK-NEXT: [[DISCRIMINATOR:%.*]] = ptrtoint ptr [[FNPTRADDR]] to i64
3535
// CHECK-NEXT: [[SIGNED:%.*]] = call i64 @llvm.ptrauth.sign(i64 ptrtoint (ptr {{@.*}} to i64), i32 0, i64 [[DISCRIMINATOR]])
3636
// CHECK-NEXT: [[T0:%.*]] = inttoptr i64 [[SIGNED]] to ptr
@@ -46,12 +46,12 @@ void test_copy_destroy(A *a) {
4646

4747
// CHECK-LABEL: define void @test_byref_copy_destroy
4848
void test_byref_copy_destroy(A *a) {
49-
// CHECK: [[COPY_FIELD:%.*]] = getelementptr inbounds [[BYREF_T:%.*]], ptr [[BYREF:%.*]], i32 0, i32 4
49+
// CHECK: [[COPY_FIELD:%.*]] = getelementptr inbounds nuw [[BYREF_T:%.*]], ptr [[BYREF:%.*]], i32 0, i32 4
5050
// CHECK-NEXT: [[T0:%.*]] = ptrtoint ptr [[COPY_FIELD]] to i64
5151
// CHECK-NEXT: [[T1:%.*]] = call i64 @llvm.ptrauth.sign(i64 ptrtoint (ptr {{@.*}} to i64), i32 0, i64 [[T0]])
5252
// CHECK-NEXT: [[T2:%.*]] = inttoptr i64 [[T1]] to ptr
5353
// CHECK-NEXT: store ptr [[T2]], ptr [[COPY_FIELD]], align 8
54-
// CHECK: [[DISPOSE_FIELD:%.*]] = getelementptr inbounds [[BYREF_T]], ptr [[BYREF]], i32 0, i32 5
54+
// CHECK: [[DISPOSE_FIELD:%.*]] = getelementptr inbounds nuw [[BYREF_T]], ptr [[BYREF]], i32 0, i32 5
5555
// CHECK-NEXT: [[T0:%.*]] = ptrtoint ptr [[DISPOSE_FIELD]] to i64
5656
// CHECK-NEXT: [[T1:%.*]] = call i64 @llvm.ptrauth.sign(i64 ptrtoint (ptr {{@.*}} to i64), i32 0, i64 [[T0]])
5757
// CHECK-NEXT: [[T2:%.*]] = inttoptr i64 [[T1]] to ptr

0 commit comments

Comments
 (0)