blob: 8859d30aed194b8f483e4ff37c218bd8a3e4855b [file] [log] [blame]
//@ test-mir-pass: ReferencePropagation
#![feature(custom_mir, core_intrinsics)]
#![allow(internal_features)]
#![crate_type = "lib"]
use std::intrinsics::mir::*;
#[inline(never)]
fn opaque(_: impl Sized, _: impl Sized) {}
#[custom_mir(dialect = "runtime")]
pub fn fn0() {
// CHECK-LABEL: fn0
// CHECK: _9 = opaque::<&u8, &u64>(copy (_2.1: &u8), copy _6) -> [return: bb1, unwind unreachable];
mir! {
let _1: (u8, u8);
let _2: (u64, &u8);
let _3: (u8, &&u64);
let _4: u64;
let _5: &u64;
let _6: &u64;
let _7: &u64;
let _8: u64;
let n: ();
{
_3.0 = 0;
_1 = (0, _3.0);
_4 = 0;
_2.1 = &_1.0;
_8 = 0;
_5 = &_8;
_5 = &_4;
_6 = _5;
_7 = _6;
_3.1 = &_6;
Call(n = opaque(_2.1, Move(_6)), ReturnTo(bb1), UnwindUnreachable())
}
bb1 = {
_2.0 = *_7;
Return()
}
}
}