rustup for span in intrinsic emulation

This commit is contained in:
Ralf Jung 2019-10-30 10:16:58 +01:00
parent 4dbc90b443
commit 15ae234a42
3 changed files with 7 additions and 5 deletions

View file

@ -1 +1 @@
084edc426f2e7e4bbedb5c6afa7fc422a52ee379
aa69777ea2902208b24b3fd77767d577ceaf6386

View file

@ -14,8 +14,7 @@ use rustc::ty::{
layout::{LayoutOf, Size},
Ty, TyCtxt,
};
use syntax::attr;
use syntax::symbol::sym;
use syntax::{attr, source_map::Span, symbol::sym};
use crate::*;
@ -192,11 +191,12 @@ impl<'mir, 'tcx> Machine<'mir, 'tcx> for Evaluator<'tcx> {
#[inline(always)]
fn call_intrinsic(
ecx: &mut rustc_mir::interpret::InterpCx<'mir, 'tcx, Self>,
span: Span,
instance: ty::Instance<'tcx>,
args: &[OpTy<'tcx, Tag>],
dest: PlaceTy<'tcx, Tag>,
) -> InterpResult<'tcx> {
ecx.call_intrinsic(instance, args, dest)
ecx.call_intrinsic(span, instance, args, dest)
}
#[inline(always)]

View file

@ -5,6 +5,7 @@ use rustc::mir;
use rustc::mir::interpret::{InterpResult, PointerArithmetic};
use rustc::ty::layout::{self, LayoutOf, Size, Align};
use rustc::ty;
use syntax::source_map::Span;
use crate::{
PlaceTy, OpTy, Immediate, Scalar, Tag,
@ -15,12 +16,13 @@ impl<'mir, 'tcx> EvalContextExt<'mir, 'tcx> for crate::MiriEvalContext<'mir, 'tc
pub trait EvalContextExt<'mir, 'tcx: 'mir>: crate::MiriEvalContextExt<'mir, 'tcx> {
fn call_intrinsic(
&mut self,
span: Span,
instance: ty::Instance<'tcx>,
args: &[OpTy<'tcx, Tag>],
dest: PlaceTy<'tcx, Tag>,
) -> InterpResult<'tcx> {
let this = self.eval_context_mut();
if this.emulate_intrinsic(instance, args, dest)? {
if this.emulate_intrinsic(span, instance, args, dest)? {
return Ok(());
}
let tcx = &{this.tcx.tcx};