Skip to content

Commit 092bd53

Browse files
committed
rename intptrcast -> alloc_addresses, and make a folder for it
1 parent 16e869a commit 092bd53

File tree

4 files changed

+16
-13
lines changed

4 files changed

+16
-13
lines changed

src/tools/miri/src/intptrcast.rs renamed to src/tools/miri/src/alloc_addresses/mod.rs

+8-5
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
1+
//! This module is responsible for managing the absolute addresses that allocations are located at,
2+
//! and for casting between pointers and integers based on those addresses.
3+
14
use std::cell::RefCell;
25
use std::cmp::max;
36
use std::collections::hash_map::Entry;
@@ -96,7 +99,7 @@ trait EvalContextExtPriv<'mir, 'tcx: 'mir>: crate::MiriInterpCxExt<'mir, 'tcx> {
9699
// or `None` if the addr is out of bounds
97100
fn alloc_id_from_addr(&self, addr: u64) -> Option<AllocId> {
98101
let ecx = self.eval_context_ref();
99-
let global_state = ecx.machine.intptrcast.borrow();
102+
let global_state = ecx.machine.alloc_addresses.borrow();
100103
assert!(global_state.provenance_mode != ProvenanceMode::Strict);
101104

102105
let pos = global_state.int_to_ptr_map.binary_search_by_key(&addr, |(addr, _)| *addr);
@@ -133,7 +136,7 @@ trait EvalContextExtPriv<'mir, 'tcx: 'mir>: crate::MiriInterpCxExt<'mir, 'tcx> {
133136

134137
fn addr_from_alloc_id(&self, alloc_id: AllocId) -> InterpResult<'tcx, u64> {
135138
let ecx = self.eval_context_ref();
136-
let mut global_state = ecx.machine.intptrcast.borrow_mut();
139+
let mut global_state = ecx.machine.alloc_addresses.borrow_mut();
137140
let global_state = &mut *global_state;
138141

139142
Ok(match global_state.base_addr.entry(alloc_id) {
@@ -196,7 +199,7 @@ impl<'mir, 'tcx: 'mir> EvalContextExt<'mir, 'tcx> for crate::MiriInterpCx<'mir,
196199
pub trait EvalContextExt<'mir, 'tcx: 'mir>: crate::MiriInterpCxExt<'mir, 'tcx> {
197200
fn expose_ptr(&mut self, alloc_id: AllocId, tag: BorTag) -> InterpResult<'tcx> {
198201
let ecx = self.eval_context_mut();
199-
let global_state = ecx.machine.intptrcast.get_mut();
202+
let global_state = ecx.machine.alloc_addresses.get_mut();
200203
// In strict mode, we don't need this, so we can save some cycles by not tracking it.
201204
if global_state.provenance_mode == ProvenanceMode::Strict {
202205
return Ok(());
@@ -207,7 +210,7 @@ pub trait EvalContextExt<'mir, 'tcx: 'mir>: crate::MiriInterpCxExt<'mir, 'tcx> {
207210
return Ok(());
208211
}
209212
trace!("Exposing allocation id {alloc_id:?}");
210-
let global_state = ecx.machine.intptrcast.get_mut();
213+
let global_state = ecx.machine.alloc_addresses.get_mut();
211214
global_state.exposed.insert(alloc_id);
212215
if ecx.machine.borrow_tracker.is_some() {
213216
ecx.expose_tag(alloc_id, tag)?;
@@ -219,7 +222,7 @@ pub trait EvalContextExt<'mir, 'tcx: 'mir>: crate::MiriInterpCxExt<'mir, 'tcx> {
219222
trace!("Casting {:#x} to a pointer", addr);
220223

221224
let ecx = self.eval_context_ref();
222-
let global_state = ecx.machine.intptrcast.borrow();
225+
let global_state = ecx.machine.alloc_addresses.borrow();
223226

224227
// Potentially emit a warning.
225228
match global_state.provenance_mode {

src/tools/miri/src/lib.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -71,13 +71,13 @@ extern crate tracing;
7171
#[allow(unused_extern_crates)]
7272
extern crate rustc_driver;
7373

74+
mod alloc_addresses;
7475
mod borrow_tracker;
7576
mod clock;
7677
mod concurrency;
7778
mod diagnostics;
7879
mod eval;
7980
mod helpers;
80-
mod intptrcast;
8181
mod machine;
8282
mod mono_hash_map;
8383
mod operator;
@@ -100,6 +100,7 @@ pub use crate::shims::panic::{CatchUnwindData, EvalContextExt as _};
100100
pub use crate::shims::time::EvalContextExt as _;
101101
pub use crate::shims::tls::TlsData;
102102

103+
pub use crate::alloc_addresses::{EvalContextExt as _, ProvenanceMode};
103104
pub use crate::borrow_tracker::stacked_borrows::{
104105
EvalContextExt as _, Item, Permission, Stack, Stacks,
105106
};
@@ -121,7 +122,6 @@ pub use crate::eval::{
121122
create_ecx, eval_entry, AlignmentCheck, BacktraceStyle, IsolatedOp, MiriConfig, RejectOpWith,
122123
};
123124
pub use crate::helpers::{AccessKind, EvalContextExt as _};
124-
pub use crate::intptrcast::{EvalContextExt as _, ProvenanceMode};
125125
pub use crate::machine::{
126126
AllocExtra, FrameExtra, MiriInterpCx, MiriInterpCxExt, MiriMachine, MiriMemoryKind,
127127
PrimitiveLayouts, Provenance, ProvenanceExtra,

src/tools/miri/src/machine.rs

+5-5
Original file line numberDiff line numberDiff line change
@@ -436,7 +436,7 @@ pub struct MiriMachine<'mir, 'tcx> {
436436
pub data_race: Option<data_race::GlobalState>,
437437

438438
/// Ptr-int-cast module global data.
439-
pub intptrcast: intptrcast::GlobalState,
439+
pub alloc_addresses: alloc_addresses::GlobalState,
440440

441441
/// Environment variables set by `setenv`.
442442
/// Miri does not expose env vars from the host to the emulated program.
@@ -634,7 +634,7 @@ impl<'mir, 'tcx> MiriMachine<'mir, 'tcx> {
634634
tcx,
635635
borrow_tracker,
636636
data_race,
637-
intptrcast: RefCell::new(intptrcast::GlobalStateInner::new(config, stack_addr)),
637+
alloc_addresses: RefCell::new(alloc_addresses::GlobalStateInner::new(config, stack_addr)),
638638
// `env_vars` depends on a full interpreter so we cannot properly initialize it yet.
639639
env_vars: EnvVars::default(),
640640
main_fn_ret_place: None,
@@ -782,7 +782,7 @@ impl VisitProvenance for MiriMachine<'_, '_> {
782782
dir_handler,
783783
borrow_tracker,
784784
data_race,
785-
intptrcast,
785+
alloc_addresses,
786786
file_handler,
787787
tcx: _,
788788
isolated_op: _,
@@ -827,7 +827,7 @@ impl VisitProvenance for MiriMachine<'_, '_> {
827827
file_handler.visit_provenance(visit);
828828
data_race.visit_provenance(visit);
829829
borrow_tracker.visit_provenance(visit);
830-
intptrcast.visit_provenance(visit);
830+
alloc_addresses.visit_provenance(visit);
831831
main_fn_ret_place.visit_provenance(visit);
832832
argc.visit_provenance(visit);
833833
argv.visit_provenance(visit);
@@ -1304,7 +1304,7 @@ impl<'mir, 'tcx> Machine<'mir, 'tcx> for MiriMachine<'mir, 'tcx> {
13041304
{
13051305
*deallocated_at = Some(machine.current_span());
13061306
}
1307-
machine.intptrcast.get_mut().free_alloc_id(alloc_id);
1307+
machine.alloc_addresses.get_mut().free_alloc_id(alloc_id);
13081308
Ok(())
13091309
}
13101310

src/tools/miri/src/provenance_gc.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -197,7 +197,7 @@ pub trait EvalContextExt<'mir, 'tcx: 'mir>: MiriInterpCxExt<'mir, 'tcx> {
197197
let allocs = LiveAllocs { ecx: this, collected: allocs };
198198
this.machine.allocation_spans.borrow_mut().retain(|id, _| allocs.is_live(*id));
199199
this.machine.symbolic_alignment.borrow_mut().retain(|id, _| allocs.is_live(*id));
200-
this.machine.intptrcast.borrow_mut().remove_unreachable_allocs(&allocs);
200+
this.machine.alloc_addresses.borrow_mut().remove_unreachable_allocs(&allocs);
201201
if let Some(borrow_tracker) = &this.machine.borrow_tracker {
202202
borrow_tracker.borrow_mut().remove_unreachable_allocs(&allocs);
203203
}

0 commit comments

Comments
 (0)