//@ 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() | |
} | |
) | |
} |