Skip to content

Commit f856247

Browse files
committed
FileCheck intrinsic_asserts.
1 parent ddc328c commit f856247

6 files changed

+46
-37
lines changed

tests/mir-opt/dont_yeet_assert.rs

Lines changed: 0 additions & 12 deletions
This file was deleted.

tests/mir-opt/intrinsic_asserts.generic.InstSimplify.diff renamed to tests/mir-opt/instsimplify/intrinsic_asserts.generic.InstSimplify.diff

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -8,25 +8,25 @@
88
let _3: ();
99

1010
bb0: {
11-
nop;
11+
StorageLive(_1);
1212
_1 = assert_inhabited::<T>() -> [return: bb1, unwind unreachable];
1313
}
1414

1515
bb1: {
16-
nop;
17-
nop;
16+
StorageDead(_1);
17+
StorageLive(_2);
1818
_2 = assert_zero_valid::<T>() -> [return: bb2, unwind unreachable];
1919
}
2020

2121
bb2: {
22-
nop;
23-
nop;
22+
StorageDead(_2);
23+
StorageLive(_3);
2424
_3 = assert_mem_uninitialized_valid::<T>() -> [return: bb3, unwind unreachable];
2525
}
2626

2727
bb3: {
28-
nop;
29-
nop;
28+
StorageDead(_3);
29+
_0 = const ();
3030
return;
3131
}
3232
}

tests/mir-opt/dont_yeet_assert.generic.InstSimplify.diff renamed to tests/mir-opt/instsimplify/intrinsic_asserts.generic_ref.InstSimplify.diff

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
- // MIR for `generic` before InstSimplify
2-
+ // MIR for `generic` after InstSimplify
1+
- // MIR for `generic_ref` before InstSimplify
2+
+ // MIR for `generic_ref` after InstSimplify
33

4-
fn generic() -> () {
4+
fn generic_ref() -> () {
55
let mut _0: ();
66
let _1: ();
77

tests/mir-opt/intrinsic_asserts.panics.InstSimplify.diff renamed to tests/mir-opt/instsimplify/intrinsic_asserts.panics.InstSimplify.diff

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -8,28 +8,28 @@
88
let _3: ();
99

1010
bb0: {
11-
nop;
11+
StorageLive(_1);
1212
- _1 = assert_inhabited::<Never>() -> [return: bb1, unwind unreachable];
1313
+ _1 = assert_inhabited::<Never>() -> unwind unreachable;
1414
}
1515

1616
bb1: {
17-
nop;
18-
nop;
17+
StorageDead(_1);
18+
StorageLive(_2);
1919
- _2 = assert_zero_valid::<&u8>() -> [return: bb2, unwind unreachable];
2020
+ _2 = assert_zero_valid::<&u8>() -> unwind unreachable;
2121
}
2222

2323
bb2: {
24-
nop;
25-
nop;
24+
StorageDead(_2);
25+
StorageLive(_3);
2626
- _3 = assert_mem_uninitialized_valid::<&u8>() -> [return: bb3, unwind unreachable];
2727
+ _3 = assert_mem_uninitialized_valid::<&u8>() -> unwind unreachable;
2828
}
2929

3030
bb3: {
31-
nop;
32-
nop;
31+
StorageDead(_3);
32+
_0 = const ();
3333
return;
3434
}
3535
}

tests/mir-opt/intrinsic_asserts.removable.InstSimplify.diff renamed to tests/mir-opt/instsimplify/intrinsic_asserts.removable.InstSimplify.diff

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -8,28 +8,28 @@
88
let _3: ();
99

1010
bb0: {
11-
nop;
11+
StorageLive(_1);
1212
- _1 = assert_inhabited::<()>() -> [return: bb1, unwind unreachable];
1313
+ goto -> bb1;
1414
}
1515

1616
bb1: {
17-
nop;
18-
nop;
17+
StorageDead(_1);
18+
StorageLive(_2);
1919
- _2 = assert_zero_valid::<u8>() -> [return: bb2, unwind unreachable];
2020
+ goto -> bb2;
2121
}
2222

2323
bb2: {
24-
nop;
25-
nop;
24+
StorageDead(_2);
25+
StorageLive(_3);
2626
- _3 = assert_mem_uninitialized_valid::<u8>() -> [return: bb3, unwind unreachable];
2727
+ goto -> bb3;
2828
}
2929

3030
bb3: {
31-
nop;
32-
nop;
31+
StorageDead(_3);
32+
_0 = const ();
3333
return;
3434
}
3535
}

tests/mir-opt/intrinsic_asserts.rs renamed to tests/mir-opt/instsimplify/intrinsic_asserts.rs

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,15 @@
1-
// skip-filecheck
1+
// unit-test: InstSimplify
2+
23
#![crate_type = "lib"]
34
#![feature(core_intrinsics)]
45

56
// All these assertions pass, so all the intrinsic calls should be deleted.
67
// EMIT_MIR intrinsic_asserts.removable.InstSimplify.diff
78
pub fn removable() {
9+
// CHECK-LABEL: fn removable(
10+
// CHECK-NOT: assert_inhabited
11+
// CHECK-NOT: assert_zero_valid
12+
// CHECK-NOT: assert_mem_uninitialized_valid
813
core::intrinsics::assert_inhabited::<()>();
914
core::intrinsics::assert_zero_valid::<u8>();
1015
core::intrinsics::assert_mem_uninitialized_valid::<u8>();
@@ -15,6 +20,10 @@ enum Never {}
1520
// These assertions all diverge, so their target blocks should become None.
1621
// EMIT_MIR intrinsic_asserts.panics.InstSimplify.diff
1722
pub fn panics() {
23+
// CHECK-LABEL: fn panics(
24+
// CHECK: assert_inhabited::<Never>() -> unwind
25+
// CHECK: assert_zero_valid::<&u8>() -> unwind
26+
// CHECK: assert_mem_uninitialized_valid::<&u8>() -> unwind
1827
core::intrinsics::assert_inhabited::<Never>();
1928
core::intrinsics::assert_zero_valid::<&u8>();
2029
core::intrinsics::assert_mem_uninitialized_valid::<&u8>();
@@ -23,7 +32,19 @@ pub fn panics() {
2332
// Whether or not these asserts pass isn't known, so they shouldn't be modified.
2433
// EMIT_MIR intrinsic_asserts.generic.InstSimplify.diff
2534
pub fn generic<T>() {
35+
// CHECK-LABEL: fn generic(
36+
// CHECK: assert_inhabited::<T>() -> [return:
37+
// CHECK: assert_zero_valid::<T>() -> [return:
38+
// CHECK: assert_mem_uninitialized_valid::<T>() -> [return:
2639
core::intrinsics::assert_inhabited::<T>();
2740
core::intrinsics::assert_zero_valid::<T>();
2841
core::intrinsics::assert_mem_uninitialized_valid::<T>();
2942
}
43+
44+
// Whether or not these asserts pass isn't known, so they shouldn't be modified.
45+
// EMIT_MIR intrinsic_asserts.generic_ref.InstSimplify.diff
46+
pub fn generic_ref<T>() {
47+
// CHECK-LABEL: fn generic_ref(
48+
// CHECK: assert_mem_uninitialized_valid::<&T>() -> [return:
49+
core::intrinsics::assert_mem_uninitialized_valid::<&T>();
50+
}

0 commit comments

Comments
 (0)