Skip to content

Commit

Permalink
Auto merge of rust-lang#2312 - RalfJung:misc, r=RalfJung
Browse files Browse the repository at this point in the history
put call to stacked borrows end_call in a more sensible place

This looks like a refactoring accident.
  • Loading branch information
bors committed Jul 2, 2022
2 parents c9925ff + dcdf4fb commit c674f26
Show file tree
Hide file tree
Showing 3 changed files with 12 additions and 12 deletions.
11 changes: 6 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -65,9 +65,9 @@ in your program, and cannot run all programs:
not support networking. System API support varies between targets; if you run
on Windows it is a good idea to use `--target x86_64-unknown-linux-gnu` to get
better support.
* Weak memory emulation may produce weak behaivours unobservable by compiled
programs running on real hardware when `SeqCst` fences are used, and it cannot
produce all behaviors possibly observable on real hardware.
* Weak memory emulation may [produce weak behaivours](https://github.com/rust-lang/miri/issues/2301)
unobservable by compiled programs running on real hardware when `SeqCst` fences are used, and it
cannot produce all behaviors possibly observable on real hardware.

[rust]: https://www.rust-lang.org/
[mir]: https://github.com/rust-lang/rfcs/blob/master/text/1211-mir.md
Expand Down Expand Up @@ -192,8 +192,9 @@ randomness that is used to determine allocation base addresses. The following
snippet calls Miri in a loop with different values for the seed:

```
for seed in $({ echo obase=16; seq 0 255; } | bc); do
MIRIFLAGS=-Zmiri-seed=$seed cargo miri test || { echo "Last seed: $seed"; break; };
for SEED in $({ echo obase=16; seq 0 255; } | bc); do
echo "Trying seed: $SEED"
MIRIFLAGS=-Zmiri-seed=$SEED cargo miri test || { echo "Failing seed: $SEED"; break; };
done
```

Expand Down
5 changes: 4 additions & 1 deletion src/machine.rs
Original file line number Diff line number Diff line change
Expand Up @@ -930,7 +930,10 @@ impl<'mir, 'tcx> Machine<'mir, 'tcx> for Evaluator<'mir, 'tcx> {
unwinding: bool,
) -> InterpResult<'tcx, StackPopJump> {
let timing = frame.extra.timing.take();
let res = ecx.handle_stack_pop(frame.extra, unwinding);
if let Some(stacked_borrows) = &ecx.machine.stacked_borrows {
stacked_borrows.borrow_mut().end_call(frame.extra.call_id);
}
let res = ecx.handle_stack_pop_unwind(frame.extra, unwinding);
if let Some(profiler) = ecx.machine.profiler.as_ref() {
profiler.finish_recording_interval_event(timing.unwrap());
}
Expand Down
8 changes: 2 additions & 6 deletions src/shims/panic.rs
Original file line number Diff line number Diff line change
Expand Up @@ -115,17 +115,13 @@ pub trait EvalContextExt<'mir, 'tcx: 'mir>: crate::MiriEvalContextExt<'mir, 'tcx
Ok(())
}

fn handle_stack_pop(
fn handle_stack_pop_unwind(
&mut self,
mut extra: FrameData<'tcx>,
unwinding: bool,
) -> InterpResult<'tcx, StackPopJump> {
let this = self.eval_context_mut();

trace!("handle_stack_pop(extra = {:?}, unwinding = {})", extra, unwinding);
if let Some(stacked_borrows) = &this.machine.stacked_borrows {
stacked_borrows.borrow_mut().end_call(extra.call_id);
}
trace!("handle_stack_pop_unwind(extra = {:?}, unwinding = {})", extra, unwinding);

// We only care about `catch_panic` if we're unwinding - if we're doing a normal
// return, then we don't need to do anything special.
Expand Down

0 comments on commit c674f26

Please sign in to comment.