Skip to content

Commit 50a5e20

Browse files
committed
Auto merge of #1137 - anp:track-caller-update, r=RalfJung
Update panic machinery to match #[track_caller] changes. This gets miri's tests passing again with rust-lang/rust#67137, I don't think it will pass CI until that has merged.
2 parents f3c267d + 3607daf commit 50a5e20

10 files changed

+15
-15
lines changed

rust-version

+1-1
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
0ec370670220b712b042ee09aab067ec7e5878d5
1+
093241deae70ba38413aff823b31c23731debf14

src/bin/miri-rustc-tests.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ extern crate rustc_driver;
77
extern crate rustc_errors;
88
extern crate rustc_interface;
99
extern crate rustc_metadata;
10-
extern crate syntax;
10+
extern crate rustc_span;
1111

1212
use std::io;
1313
use std::io::Write;
@@ -40,7 +40,7 @@ impl rustc_driver::Callbacks for MiriCompilerCalls {
4040
impl<'tcx, 'hir> itemlikevisit::ItemLikeVisitor<'hir> for Visitor<'tcx> {
4141
fn visit_item(&mut self, i: &'hir hir::Item) {
4242
if let hir::ItemKind::Fn(.., body_id) = i.kind {
43-
if i.attrs.iter().any(|attr| attr.check_name(syntax::symbol::sym::test))
43+
if i.attrs.iter().any(|attr| attr.check_name(rustc_span::symbol::sym::test))
4444
{
4545
let config = MiriConfig {
4646
validate: true,

src/bin/miri.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ extern crate rustc_driver;
1212
extern crate rustc_errors;
1313
extern crate rustc_interface;
1414
extern crate rustc_metadata;
15-
extern crate syntax;
15+
extern crate rustc_span;
1616

1717
use std::convert::TryFrom;
1818
use std::env;

src/eval.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ pub fn create_ecx<'mir, 'tcx: 'mir>(
4747
config: MiriConfig,
4848
) -> InterpResult<'tcx, (InterpCx<'mir, 'tcx, Evaluator<'tcx>>, MPlaceTy<'tcx, Tag>)> {
4949
let mut ecx = InterpCx::new(
50-
tcx.at(syntax::source_map::DUMMY_SP),
50+
tcx.at(rustc_span::source_map::DUMMY_SP),
5151
ty::ParamEnv::reveal_all(),
5252
Evaluator::new(config.communicate),
5353
MemoryExtra::new(

src/helpers.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ use rustc::ty::{
88
layout::{self, LayoutOf, Size, TyLayout},
99
List, TyCtxt,
1010
};
11-
use syntax::source_map::DUMMY_SP;
11+
use rustc_span::source_map::DUMMY_SP;
1212

1313
use rand::RngCore;
1414

src/lib.rs

+1
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ extern crate rustc_apfloat;
1010
extern crate syntax;
1111
#[macro_use]
1212
extern crate rustc;
13+
extern crate rustc_span;
1314
extern crate rustc_data_structures;
1415
extern crate rustc_mir;
1516
extern crate rustc_target;

src/machine.rs

+3-1
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,8 @@ use rustc::ty::{
1414
layout::{LayoutOf, Size},
1515
Ty, TyCtxt,
1616
};
17-
use syntax::{attr, source_map::Span, symbol::sym};
17+
use rustc_span::{source_map::Span, symbol::sym};
18+
use syntax::attr;
1819

1920
use crate::*;
2021

@@ -182,6 +183,7 @@ impl<'mir, 'tcx> Machine<'mir, 'tcx> for Evaluator<'tcx> {
182183
#[inline(always)]
183184
fn find_mir_or_eval_fn(
184185
ecx: &mut InterpCx<'mir, 'tcx, Self>,
186+
_span: Span,
185187
instance: ty::Instance<'tcx>,
186188
args: &[OpTy<'tcx, Tag>],
187189
ret: Option<(PlaceTy<'tcx, Tag>, mir::BasicBlock)>,

src/shims/foreign_items.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@ use rustc::mir;
55
use rustc::ty;
66
use rustc::ty::layout::{Align, LayoutOf, Size};
77
use rustc_apfloat::Float;
8+
use rustc_span::symbol::sym;
89
use syntax::attr;
9-
use syntax::symbol::sym;
1010

1111
use crate::*;
1212

@@ -961,7 +961,7 @@ pub trait EvalContextExt<'mir, 'tcx: 'mir>: crate::MiriEvalContextExt<'mir, 'tcx
961961
// lpBuffer : ptr to buffer that receives contents of the env_var as a null-terminated string.
962962
// Return `# of chars` stored in the buffer pointed to by lpBuffer, excluding null-terminator.
963963
// Return 0 upon failure.
964-
964+
965965
// This is not the env var you are looking for.
966966
this.set_last_error(Scalar::from_u32(203))?; // ERROR_ENVVAR_NOT_FOUND
967967
this.write_null(dest)?;

src/shims/intrinsics.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ use rustc::mir::interpret::{InterpResult, PointerArithmetic};
55
use rustc::ty;
66
use rustc::ty::layout::{self, Align, LayoutOf, Size};
77
use rustc_apfloat::Float;
8-
use syntax::source_map::Span;
8+
use rustc_span::source_map::Span;
99

1010
use crate::*;
1111

src/shims/panic.rs

+2-5
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
use rustc::mir;
1515
use rustc::ty::{self, layout::LayoutOf};
1616
use rustc_target::spec::PanicStrategy;
17-
use syntax::source_map::Span;
17+
use rustc_span::source_map::Span;
1818

1919
use crate::*;
2020

@@ -187,15 +187,12 @@ pub trait EvalContextExt<'mir, 'tcx: 'mir>: crate::MiriEvalContextExt<'mir, 'tcx
187187
let msg = msg.description();
188188
let msg = this.allocate_str(msg, MiriMemoryKind::Env.into());
189189

190-
// Second arg: Caller location.
191-
let location = this.alloc_caller_location_for_span(span);
192-
193190
// Call the lang item.
194191
let panic = this.tcx.lang_items().panic_fn().unwrap();
195192
let panic = ty::Instance::mono(this.tcx.tcx, panic);
196193
this.call_function(
197194
panic,
198-
&[msg.to_ref(), location.ptr.into()],
195+
&[msg.to_ref()],
199196
None,
200197
StackPopCleanup::Goto { ret: None, unwind },
201198
)?;

0 commit comments

Comments
 (0)