Skip to content

Commit 8936d67

Browse files
committed
Delegate to the actual panic runtime crate
1 parent 82374ad commit 8936d67

File tree

2 files changed

+2
-8
lines changed

2 files changed

+2
-8
lines changed

src/shims/foreign_items.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -134,7 +134,8 @@ pub trait EvalContextExt<'mir, 'tcx: 'mir>: crate::MiriEvalContextExt<'mir, 'tcx
134134
// that is, calls to `extern "Rust" { fn __rust_start_panic(...) }`.
135135
// We forward this to the underlying *implementation* in "libpanic_unwind".
136136
"__rust_start_panic" => {
137-
let start_panic_instance = this.resolve_path(&["panic_unwind", "__rust_start_panic"])?;
137+
let panic_runtime = tcx.crate_name(tcx.injected_panic_runtime().expect("No panic runtime found!"));
138+
let start_panic_instance = this.resolve_path(&[&*panic_runtime.as_str(), "__rust_start_panic"])?;
138139
return Ok(Some(this.load_mir(start_panic_instance.def, None)?));
139140
}
140141
// Similarly, we forward calls to the `panic_impl` foreign item to its implementation.

src/shims/panic.rs

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -47,13 +47,6 @@ pub trait EvalContextExt<'mir, 'tcx: 'mir>: crate::MiriEvalContextExt<'mir, 'tcx
4747

4848
trace!("miri_start_panic: {:?}", this.frame().span);
4949

50-
if this.tcx.tcx.sess.panic_strategy() == PanicStrategy::Abort {
51-
// FIXME: Add a better way of indicating 'abnormal' termination,
52-
// since this is not really an 'unsupported' behavior
53-
throw_unsup_format!("the evaluated program panicked");
54-
}
55-
56-
// Get the raw pointer stored in arg[0] (the panic payload).
5750
let scalar = this.read_immediate(args[0])?;
5851
assert!(this.machine.panic_payload.is_none(), "the panic runtime should avoid double-panics");
5952
this.machine.panic_payload = Some(scalar);

0 commit comments

Comments
 (0)