]> git.proxmox.com Git - rustc.git/blob - tests/mir-opt/intrinsic_asserts.rs
New upstream version 1.74.1+dfsg1
[rustc.git] / tests / mir-opt / intrinsic_asserts.rs
1 #![crate_type = "lib"]
2 #![feature(core_intrinsics)]
3
4 // All these assertions pass, so all the intrinsic calls should be deleted.
5 // EMIT_MIR intrinsic_asserts.removable.InstSimplify.diff
6 pub fn removable() {
7 core::intrinsics::assert_inhabited::<()>();
8 core::intrinsics::assert_zero_valid::<u8>();
9 core::intrinsics::assert_mem_uninitialized_valid::<u8>();
10 }
11
12 enum Never {}
13
14 // These assertions all diverge, so their target blocks should become None.
15 // EMIT_MIR intrinsic_asserts.panics.InstSimplify.diff
16 pub fn panics() {
17 core::intrinsics::assert_inhabited::<Never>();
18 core::intrinsics::assert_zero_valid::<&u8>();
19 core::intrinsics::assert_mem_uninitialized_valid::<&u8>();
20 }
21
22 // Whether or not these asserts pass isn't known, so they shouldn't be modified.
23 // EMIT_MIR intrinsic_asserts.generic.InstSimplify.diff
24 pub fn generic<T>() {
25 core::intrinsics::assert_inhabited::<T>();
26 core::intrinsics::assert_zero_valid::<T>();
27 core::intrinsics::assert_mem_uninitialized_valid::<T>();
28 }