// skip-filecheck | |
// This is a miscompilation, #111005 to track | |
//@ test-mir-pass: RenameReturnPlace | |
#![feature(custom_mir, core_intrinsics)] | |
extern crate core; | |
use core::intrinsics::mir::*; | |
// EMIT_MIR nrvo_miscompile_111005.wrong.RenameReturnPlace.diff | |
#[custom_mir(dialect = "runtime", phase = "initial")] | |
pub fn wrong(arg: char) -> char { | |
mir! { | |
{ | |
let temp = arg; | |
RET = temp; | |
temp = 'b'; | |
Return() | |
} | |
} | |
} | |
fn main() { | |
assert_eq!(wrong('a'), 'a'); | |
} |