layout::{LayoutOf, Size},
Ty, TyCtxt,
};
-use syntax::attr;
-use syntax::symbol::sym;
+use syntax::{attr, source_map::Span, symbol::sym};
use crate::*;
#[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)]
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,
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};