From e81d81e5af07f65a51e8496fda524b4cfbc09677 Mon Sep 17 00:00:00 2001 From: Ralf Jung Date: Mon, 7 Jan 2019 11:23:08 +0100 Subject: [PATCH] implement panic_if_uninhabited intrinsic --- src/intrinsic.rs | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/intrinsic.rs b/src/intrinsic.rs index 0f7382b61b72..0ef847236418 100644 --- a/src/intrinsic.rs +++ b/src/intrinsic.rs @@ -286,6 +286,14 @@ pub trait EvalContextExt<'a, 'mir, 'tcx: 'a+'mir>: crate::MiriEvalContextExt<'a, this.write_scalar(result_ptr, dest)?; } + "panic_if_uninhabited" => { + let ty = substs.type_at(0); + let layout = this.layout_of(ty)?; + if layout.abi.is_uninhabited() { + return err!(Intrinsic(format!("Trying to instantiate uninhabited type {}", ty))) + } + } + "powf32" => { let f = this.read_scalar(args[0])?.to_f32()?; let f2 = this.read_scalar(args[1])?.to_f32()?;