]> git.lizzy.rs Git - rust.git/commitdiff
adjust for span not being passed around any more
authorRalf Jung <post@ralfj.de>
Mon, 30 Mar 2020 20:54:49 +0000 (22:54 +0200)
committerRalf Jung <post@ralfj.de>
Thu, 2 Apr 2020 07:14:17 +0000 (09:14 +0200)
src/diagnostics.rs
src/helpers.rs
src/machine.rs
src/shims/intrinsics.rs
src/shims/panic.rs

index 8595551b6cbdfd39c8b37b1d7085542572464d43..9ff434021150f12fba18587374d1f9bce49dc211 100644 (file)
@@ -129,7 +129,7 @@ fn report_msg<'tcx, 'mir>(
         err.help(help);
     }
     // Add backtrace
-    let frames = ecx.generate_stacktrace(None);
+    let frames = ecx.generate_stacktrace();
     for (idx, frame_info) in frames.iter().enumerate() {
         let is_local = frame_info.instance.def_id().is_local();
         // No span for non-local frames and the first frame (which is the error site).
index 568e9c925d55a28e6bfc114e82a3ddd395687866..827bf1f9dde028aa4c0cb5a6a2a3bd2ad259edde 100644 (file)
@@ -10,7 +10,6 @@
     List, TyCtxt,
 };
 use rustc_hir::def_id::{DefId, CRATE_DEF_INDEX};
-use rustc_span::source_map::DUMMY_SP;
 
 use rand::RngCore;
 
@@ -170,13 +169,7 @@ fn call_function(
 
         // Push frame.
         let mir = &*this.load_mir(f.def, None)?;
-        let span = this
-            .stack()
-            .last()
-            .and_then(Frame::current_source_info)
-            .map(|si| si.span)
-            .unwrap_or(DUMMY_SP);
-        this.push_stack_frame(f, span, mir, dest, stack_pop)?;
+        this.push_stack_frame(f, mir, dest, stack_pop)?;
 
         // Initialize arguments.
         let mut callee_args = this.frame().body.args_iter();
index 4b7f3a76569f1ecd005c29570f7964cffd60df4b..61c9f71407bf5930d94c8f45a95e99397c05bb58 100644 (file)
@@ -18,7 +18,7 @@
     Ty,
 };
 use rustc_ast::attr;
-use rustc_span::{source_map::Span, symbol::{sym, Symbol}};
+use rustc_span::symbol::{sym, Symbol};
 
 use crate::*;
 
@@ -253,7 +253,6 @@ fn enforce_validity(ecx: &InterpCx<'mir, 'tcx, Self>) -> bool {
     #[inline(always)]
     fn find_mir_or_eval_fn(
         ecx: &mut InterpCx<'mir, 'tcx, Self>,
-        _span: Span,
         instance: ty::Instance<'tcx>,
         args: &[OpTy<'tcx, Tag>],
         ret: Option<(PlaceTy<'tcx, Tag>, mir::BasicBlock)>,
@@ -276,13 +275,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>],
         ret: Option<(PlaceTy<'tcx, Tag>, mir::BasicBlock)>,
         unwind: Option<mir::BasicBlock>,
     ) -> InterpResult<'tcx> {
-        ecx.call_intrinsic(span, instance, args, ret, unwind)
+        ecx.call_intrinsic(instance, args, ret, unwind)
     }
 
     #[inline(always)]
index e0eb0df87c48185e95cee9261c8f76ab9ced6f3b..b7900bfaa5d5fac6b0894206d2eb562e269476bb 100644 (file)
@@ -5,7 +5,6 @@
 use rustc_middle::ty;
 use rustc_middle::ty::layout::{Align, LayoutOf};
 use rustc_apfloat::Float;
-use rustc_span::source_map::Span;
 
 use crate::*;
 
@@ -13,14 +12,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>],
         ret: Option<(PlaceTy<'tcx, Tag>, mir::BasicBlock)>,
         unwind: Option<mir::BasicBlock>,
     ) -> InterpResult<'tcx> {
         let this = self.eval_context_mut();
-        if this.emulate_intrinsic(span, instance, args, ret)? {
+        if this.emulate_intrinsic(instance, args, ret)? {
             return Ok(());
         }
         let substs = instance.substs;
index 77741b7cca4097b7ab75b313792ff6e47d369a0a..3474945980a90f34e2b5386b856a0b69fed7b6ed 100644 (file)
@@ -51,7 +51,7 @@ fn handle_miri_start_panic(
     ) -> InterpResult<'tcx> {
         let this = self.eval_context_mut();
 
-        trace!("miri_start_panic: {:?}", this.frame().span);
+        trace!("miri_start_panic: {:?}", this.frame().instance);
 
         // Get the raw pointer stored in arg[0] (the panic payload).
         let payload = this.read_scalar(args[0])?.not_undef()?;
@@ -133,7 +133,7 @@ fn handle_stack_pop(
         if let (true, Some(catch_unwind)) = (unwinding, extra.catch_unwind.take()) {
             // We've just popped a frame that was pushed by `try`,
             // and we are unwinding, so we should catch that.
-            trace!("unwinding: found catch_panic frame during unwinding: {:?}", this.frame().span);
+            trace!("unwinding: found catch_panic frame during unwinding: {:?}", this.frame().instance);
 
             // We set the return value of `try` to 1, since there was a panic.
             this.write_scalar(Scalar::from_i32(1), catch_unwind.dest)?;