Skip to content

Commit

Permalink
Rollup merge of #117044 - RalfJung:miri, r=RalfJung
Browse files Browse the repository at this point in the history
Miri subtree update

This should unblock rust-lang/rust#116581
  • Loading branch information
matthiaskrgr authored Oct 23, 2023
2 parents 30aef54 + 82c63b8 commit a7827c2
Show file tree
Hide file tree
Showing 4 changed files with 9 additions and 9 deletions.
2 changes: 1 addition & 1 deletion rust-version
Original file line number Diff line number Diff line change
@@ -1 +1 @@
249624b5043013d18c00f0401ca431c1a6baa8cd
9e3f784eb2c7c847b6c3578b373c0e0bc9233ca3
13 changes: 6 additions & 7 deletions src/clock.rs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
use std::sync::atomic::{AtomicU64, Ordering};
use std::cell::Cell;
use std::time::{Duration, Instant as StdInstant};

/// When using a virtual clock, this defines how many nanoseconds we pretend are passing for each
Expand Down Expand Up @@ -59,7 +59,7 @@ enum ClockKind {
},
Virtual {
/// The "current virtual time".
nanoseconds: AtomicU64,
nanoseconds: Cell<u64>,
},
}

Expand All @@ -82,7 +82,7 @@ impl Clock {
// Time will pass without us doing anything.
}
ClockKind::Virtual { nanoseconds } => {
nanoseconds.fetch_add(NANOSECONDS_PER_BASIC_BLOCK, Ordering::SeqCst);
nanoseconds.update(|x| x + NANOSECONDS_PER_BASIC_BLOCK);
}
}
}
Expand All @@ -93,7 +93,8 @@ impl Clock {
ClockKind::Host { .. } => std::thread::sleep(duration),
ClockKind::Virtual { nanoseconds } => {
// Just pretend that we have slept for some time.
nanoseconds.fetch_add(duration.as_nanos().try_into().unwrap(), Ordering::SeqCst);
let nanos: u64 = duration.as_nanos().try_into().unwrap();
nanoseconds.update(|x| x + nanos);
}
}
}
Expand All @@ -110,9 +111,7 @@ impl Clock {
match &self.kind {
ClockKind::Host { .. } => Instant { kind: InstantKind::Host(StdInstant::now()) },
ClockKind::Virtual { nanoseconds } =>
Instant {
kind: InstantKind::Virtual { nanoseconds: nanoseconds.load(Ordering::SeqCst) },
},
Instant { kind: InstantKind::Virtual { nanoseconds: nanoseconds.get() } },
}
}
}
1 change: 1 addition & 0 deletions src/lib.rs
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
#![feature(rustc_private)]
#![feature(cell_update)]
#![feature(float_gamma)]
#![feature(map_try_insert)]
#![feature(never_type)]
Expand Down
2 changes: 1 addition & 1 deletion src/shims/backtrace.rs
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ pub trait EvalContextExt<'mir, 'tcx: 'mir>: crate::MiriInterpCxExt<'mir, 'tcx> {
let this = self.eval_context_mut();
let tcx = this.tcx;

let flags = if let Some(flags_op) = args.get(0) {
let flags = if let Some(flags_op) = args.first() {
this.read_scalar(flags_op)?.to_u64()?
} else {
throw_ub_format!("expected at least 1 argument")
Expand Down

0 comments on commit a7827c2

Please sign in to comment.