diff --git a/tests/run-pass/enum_discriminant_ptr_value.rs b/tests/run-pass/enum_discriminant_ptr_value.rs new file mode 100644 index 000000000000..618d503cd5f2 --- /dev/null +++ b/tests/run-pass/enum_discriminant_ptr_value.rs @@ -0,0 +1,9 @@ +// A niche-optimized enum where the discriminant is a pointer value -- relies on ptr-to-int casts in +// the niche handling code. +// compile-flags: -Zmiri-disable-stacked-borrows -Zmiri-disable-validation + +fn main() { + let x = 42; + let val: Option<&i32> = unsafe { std::mem::transmute((&x as *const i32).wrapping_offset(2)) }; + assert!(val.is_some()); +}