Skip to content

Commit 3009228

Browse files
authored
[clang][UBSan] Remove rigid metadata checks for ubsan-bitfield-conversion (#88116)
Follow-up to discussion: #87761 As discussed after landing the original PR: Since fails could happen w.r.t. checking `!6`, these checks should be removed.
1 parent f0e79d9 commit 3009228

File tree

2 files changed

+12
-12
lines changed

2 files changed

+12
-12
lines changed

clang/test/CodeGen/ubsan-bitfield-conversion.c

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ void foo1(int x) {
1717
// CHECK-NEXT: [[BFRESULTASHR:%.*]] = ashr i8 [[BFRESULTSHL]], 5
1818
// CHECK-NEXT: [[BFRESULTCAST:%.*]] = sext i8 [[BFRESULTASHR]] to i32
1919
// CHECK-BITFIELD-CONVERSION: call void @__ubsan_handle_implicit_conversion
20-
// CHECK-BITFIELD-CONVERSION-NEXT: br label %[[CONT:.*]], !nosanitize !6
20+
// CHECK-BITFIELD-CONVERSION-NEXT: br label %[[CONT:.*]], !nosanitize
2121
// CHECK-BITFIELD-CONVERSION: [[CONT]]:
2222
// CHECK-NEXT: ret void
2323
}
@@ -29,7 +29,7 @@ void foo2(int x) {
2929
// CHECK-NEXT: [[BFRESULTSHL:%.*]] = shl i8 {{.*}}, 6
3030
// CHECK-NEXT: [[BFRESULTASHR:%.*]] = ashr i8 [[BFRESULTSHL]], 6
3131
// CHECK-BITFIELD-CONVERSION: call void @__ubsan_handle_implicit_conversion
32-
// CHECK-BITFIELD-CONVERSION-NEXT: br label %[[CONT:.*]], !nosanitize !6
32+
// CHECK-BITFIELD-CONVERSION-NEXT: br label %[[CONT:.*]], !nosanitize
3333
// CHECK-BITFIELD-CONVERSION: [[CONT]]:
3434
// CHECK-NEXT: ret void
3535
}
@@ -42,7 +42,7 @@ void foo3() {
4242
// CHECK-NEXT: [[BFRESULTASHR:%.*]] = ashr i8 [[BFRESULTSHL]], 5
4343
// CHECK-NEXT: [[BFRESULTCAST:%.*]] = sext i8 [[BFRESULTASHR]] to i32
4444
// CHECK-BITFIELD-CONVERSION: call void @__ubsan_handle_implicit_conversion
45-
// CHECK-BITFIELD-CONVERSION-NEXT: br label %[[CONT:.*]], !nosanitize !6
45+
// CHECK-BITFIELD-CONVERSION-NEXT: br label %[[CONT:.*]], !nosanitize
4646
// CHECK-BITFIELD-CONVERSION: [[CONT]]:
4747
// CHECK-NEXT: ret void
4848
}
@@ -55,7 +55,7 @@ void foo4(int x) {
5555
// CHECK-NEXT: [[BFRESULTASHR:%.*]] = ashr i8 [[BFRESULTSHL]], 5
5656
// CHECK-NEXT: [[BFRESULTCAST:%.*]] = sext i8 [[BFRESULTASHR]] to i32
5757
// CHECK-BITFIELD-CONVERSION: call void @__ubsan_handle_implicit_conversion
58-
// CHECK-BITFIELD-CONVERSION-NEXT: br label %[[CONT:.*]], !nosanitize !6
58+
// CHECK-BITFIELD-CONVERSION-NEXT: br label %[[CONT:.*]], !nosanitize
5959
// CHECK-BITFIELD-CONVERSION: [[CONT]]:
6060
// CHECK-NEXT: ret void
6161
}

clang/test/CodeGenCXX/ubsan-bitfield-conversion.cpp

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -23,14 +23,14 @@ void foo1(int x) {
2323
// CHECK-BITFIELD-CONVERSION-NEXT: [[BFRESULTASHR:%.*]] = ashr i8 [[BFRESULTSHL]], 5
2424
// CHECK-BITFIELD-CONVERSION-NEXT: [[BFRESULTCAST:%.*]] = sext i8 [[BFRESULTASHR]] to i32
2525
// CHECK-BITFIELD-CONVERSION: call void @__ubsan_handle_implicit_conversion
26-
// CHECK-BITFIELD-CONVERSION-NEXT: br label %[[CONT:.*]], !nosanitize !6
26+
// CHECK-BITFIELD-CONVERSION-NEXT: br label %[[CONT:.*]], !nosanitize
2727
c.a = x;
2828
// CHECK: store i8 %{{.*}}
2929
// CHECK-BITFIELD-CONVERSION: [[BFRESULTSHL:%.*]] = shl i8 {{.*}}, 5
3030
// CHECK-BITFIELD-CONVERSION-NEXT: [[BFRESULTASHR:%.*]] = ashr i8 [[BFRESULTSHL]], 5
3131
// CHECK-BITFIELD-CONVERSION-NEXT: [[BFRESULTCAST:%.*]] = sext i8 [[BFRESULTASHR]] to i32
3232
// CHECK-BITFIELD-CONVERSION: call void @__ubsan_handle_implicit_conversion
33-
// CHECK-BITFIELD-CONVERSION-NEXT: br label %[[CONT:.*]], !nosanitize !6
33+
// CHECK-BITFIELD-CONVERSION-NEXT: br label %[[CONT:.*]], !nosanitize
3434
// CHECK-BITFIELD-CONVERSION: [[CONT]]:
3535
// CHECK-NEXT: ret void
3636
}
@@ -42,13 +42,13 @@ void foo2(int x) {
4242
// CHECK-BITFIELD-CONVERSION: [[BFRESULTSHL:%.*]] = shl i8 {{.*}}, 6
4343
// CHECK-BITFIELD-CONVERSION-NEXT: [[BFRESULTASHR:%.*]] = ashr i8 [[BFRESULTSHL]], 6
4444
// CHECK-BITFIELD-CONVERSION: call void @__ubsan_handle_implicit_conversion
45-
// CHECK-BITFIELD-CONVERSION-NEXT: br label %[[CONT:.*]], !nosanitize !6
45+
// CHECK-BITFIELD-CONVERSION-NEXT: br label %[[CONT:.*]], !nosanitize
4646
c.b = x;
4747
// CHECK: store i8 %{{.*}}
4848
// CHECK-BITFIELD-CONVERSION: [[BFRESULTSHL:%.*]] = shl i8 {{.*}}, 6
4949
// CHECK-BITFIELD-CONVERSION-NEXT: [[BFRESULTASHR:%.*]] = ashr i8 [[BFRESULTSHL]], 6
5050
// CHECK-BITFIELD-CONVERSION: call void @__ubsan_handle_implicit_conversion
51-
// CHECK-BITFIELD-CONVERSION-NEXT: br label %[[CONT:.*]], !nosanitize !6
51+
// CHECK-BITFIELD-CONVERSION-NEXT: br label %[[CONT:.*]], !nosanitize
5252
// CHECK-BITFIELD-CONVERSION: [[CONT]]:
5353
// CHECK-NEXT: ret void
5454
}
@@ -61,14 +61,14 @@ void foo3() {
6161
// CHECK-NEXT: [[BFRESULTASHR:%.*]] = ashr i8 [[BFRESULTSHL]], 5
6262
// CHECK-NEXT: [[BFRESULTCAST:%.*]] = sext i8 [[BFRESULTASHR]] to i32
6363
// CHECK-BITFIELD-CONVERSION: call void @__ubsan_handle_implicit_conversion
64-
// CHECK-BITFIELD-CONVERSION-NEXT: br label %[[CONT:.*]], !nosanitize !6
64+
// CHECK-BITFIELD-CONVERSION-NEXT: br label %[[CONT:.*]], !nosanitize
6565
c.a++;
6666
// CHECK: store i8 %{{.*}}
6767
// CHECK-NEXT: [[BFRESULTSHL:%.*]] = shl i8 {{.*}}, 5
6868
// CHECK-NEXT: [[BFRESULTASHR:%.*]] = ashr i8 [[BFRESULTSHL]], 5
6969
// CHECK-NEXT: [[BFRESULTCAST:%.*]] = sext i8 [[BFRESULTASHR]] to i32
7070
// CHECK-BITFIELD-CONVERSION: call void @__ubsan_handle_implicit_conversion
71-
// CHECK-BITFIELD-CONVERSION-NEXT: br label %[[CONT:.*]], !nosanitize !6
71+
// CHECK-BITFIELD-CONVERSION-NEXT: br label %[[CONT:.*]], !nosanitize
7272
// CHECK-BITFIELD-CONVERSION: [[CONT]]:
7373
// CHECK-NEXT: ret void
7474
}
@@ -81,14 +81,14 @@ void foo4(int x) {
8181
// CHECK-NEXT: [[BFRESULTASHR:%.*]] = ashr i8 [[BFRESULTSHL]], 5
8282
// CHECK-NEXT: [[BFRESULTCAST:%.*]] = sext i8 [[BFRESULTASHR]] to i32
8383
// CHECK-BITFIELD-CONVERSION: call void @__ubsan_handle_implicit_conversion
84-
// CHECK-BITFIELD-CONVERSION-NEXT: br label %[[CONT:.*]], !nosanitize !6
84+
// CHECK-BITFIELD-CONVERSION-NEXT: br label %[[CONT:.*]], !nosanitize
8585
c.a += x;
8686
// CHECK: store i8 %{{.*}}
8787
// CHECK-NEXT: [[BFRESULTSHL:%.*]] = shl i8 {{.*}}, 5
8888
// CHECK-NEXT: [[BFRESULTASHR:%.*]] = ashr i8 [[BFRESULTSHL]], 5
8989
// CHECK-NEXT: [[BFRESULTCAST:%.*]] = sext i8 [[BFRESULTASHR]] to i32
9090
// CHECK-BITFIELD-CONVERSION: call void @__ubsan_handle_implicit_conversion
91-
// CHECK-BITFIELD-CONVERSION-NEXT: br label %[[CONT:.*]], !nosanitize !6
91+
// CHECK-BITFIELD-CONVERSION-NEXT: br label %[[CONT:.*]], !nosanitize
9292
// CHECK-BITFIELD-CONVERSION: [[CONT]]:
9393
// CHECK-NEXT: ret void
9494
}

0 commit comments

Comments
 (0)