//! Ensure that the MIR validator runs on Miri's input. //@rustc-env:RUSTC_ICE=0 //@normalize-stderr-test: "\n +[0-9]+:.+" -> "" //@normalize-stderr-test: "\n +at .+" -> "" //@normalize-stderr-test: "\n +\[\.\.\. omitted [0-9]+ frames? \.\.\.\].*" -> "" //@normalize-stderr-test: "\n[ =]*note:.*" -> "" //@normalize-stderr-test: "DefId\([^()]*\)" -> "DefId" // Somehow on rustc Windows CI, the "Miri caused an ICE" message is not shown // and we don't even get a regular panic; rustc aborts with a different exit code instead. //@ignore-host: windows #![feature(custom_mir, core_intrinsics)] use core::intrinsics::mir::*; #[custom_mir(dialect = "runtime", phase = "optimized")] pub fn main() { mir! { let x: i32; let tuple: (*mut i32,); { tuple.0 = core::ptr::addr_of_mut!(x); // Deref at the wrong place! *(tuple.0) = 1; Return() } } }