| //@ build-pass | |
| //@ compile-flags: --crate-type=lib | |
| #![feature(custom_mir, core_intrinsics)] | |
| use std::intrinsics::mir::*; | |
| #[custom_mir(dialect = "runtime", phase = "optimized")] | |
| pub fn f(a: u32) -> u32 { | |
| mir! { | |
| let x: u32; | |
| { | |
| // Previously code generation failed with ICE "use of .. before def ..." because the | |
| // definition of x was incorrectly identified as dominating the use of x located in the | |
| // same statement: | |
| x = x + a; | |
| RET = x; | |
| Return() | |
| } | |
| } | |
| } |