Skip to content

Commit 8bac26b

Browse files
committed
Add tests for -Zmiri-check-number-validity
1 parent e95f489 commit 8bac26b

File tree

4 files changed

+32
-0
lines changed

4 files changed

+32
-0
lines changed

tests/compile-fail/uninit_float.rs

+8
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
// compile-flags: -Zmiri-check-number-validity
2+
3+
// This test is adapted from https://github.com/rust-lang/miri/issues/1340#issue-600900312.
4+
5+
fn main() {
6+
let _val = unsafe { std::mem::MaybeUninit::<f32>::uninit().assume_init() };
7+
//~^ ERROR type validation failed at .value: encountered uninitialized bytes, but expected initialized plain (non-pointer) bytes
8+
}

tests/compile-fail/uninit_integer.rs

+8
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
// compile-flags: -Zmiri-check-number-validity
2+
3+
// This test is from https://github.com/rust-lang/miri/issues/1340#issue-600900312.
4+
5+
fn main() {
6+
let _val = unsafe { std::mem::MaybeUninit::<usize>::uninit().assume_init() };
7+
//~^ ERROR type validation failed at .value: encountered uninitialized bytes, but expected initialized plain (non-pointer) bytes
8+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
// compile-flags: -Zmiri-check-number-validity
2+
3+
// This test is adapted from https://github.com/rust-lang/miri/issues/1340#issue-600900312.
4+
5+
fn main() {
6+
let _val = unsafe { std::mem::MaybeUninit::<i32>::uninit().assume_init() };
7+
//~^ ERROR type validation failed at .value: encountered uninitialized bytes, but expected initialized plain (non-pointer) bytes
8+
}
+8
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
// This test is adapted from https://github.com/rust-lang/miri/issues/1340#issue-600900312.
2+
// This test passes because -Zmiri-check-number-validity is not passed.
3+
4+
fn main() {
5+
let _val1 = unsafe { std::mem::MaybeUninit::<usize>::uninit().assume_init() };
6+
let _val2 = unsafe { std::mem::MaybeUninit::<i32>::uninit().assume_init() };
7+
let _val3 = unsafe { std::mem::MaybeUninit::<f32>::uninit().assume_init() };
8+
}

0 commit comments

Comments
 (0)