]> git.lizzy.rs Git - rust.git/commitdiff
rustup for span in intrinsic emulation
authorRalf Jung <post@ralfj.de>
Wed, 30 Oct 2019 09:16:58 +0000 (10:16 +0100)
committerRalf Jung <post@ralfj.de>
Wed, 30 Oct 2019 09:16:58 +0000 (10:16 +0100)
rust-version
src/machine.rs
src/shims/intrinsics.rs

index f7618eadd9f07d823a248f733c1279692467a3b6..8fb4c0987318a1018ac615503688a8340cbdb517 100644 (file)
@@ -1 +1 @@
-084edc426f2e7e4bbedb5c6afa7fc422a52ee379
+aa69777ea2902208b24b3fd77767d577ceaf6386
index 7904e1cc123b359fbc08603f7325c5abbad80b5d..c07fca68199cec5aba9526f296d677792858e9f7 100644 (file)
@@ -14,8 +14,7 @@
     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 @@ fn call_extra_fn(
     #[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)]
index 5ef7fba7f59083b093902b40a094b4b2fe851d95..9e47c095d6d315831227fc68d699608c34c4f25e 100644 (file)
@@ -5,6 +5,7 @@
 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};