diff --git a/src/librustc_mir/const_eval/machine.rs b/src/librustc_mir/const_eval/machine.rs index 115511fa70a..0cb654b30cc 100644 --- a/src/librustc_mir/const_eval/machine.rs +++ b/src/librustc_mir/const_eval/machine.rs @@ -40,15 +40,16 @@ impl<'mir, 'tcx> InterpCx<'mir, 'tcx, CompileTimeInterpreter<'mir, 'tcx>> { return Ok(false); } - let gid = GlobalId { instance, promoted: None }; - - let place = self.const_eval_raw(gid)?; let dest = match ret { Some((dest, _)) => dest, // Don't memoize diverging function calls. None => return Ok(false), }; + let gid = GlobalId { instance, promoted: None }; + + let place = self.const_eval_raw(gid)?; + self.copy_op(place.into(), dest)?; self.return_to_block(ret.map(|r| r.1))?;