#![feature(never_type)]
#![feature(try_blocks)]
#![feature(let_else)]
-#![feature(bool_to_option)]
#![feature(io_error_more)]
+#![feature(yeet_expr)]
+#![feature(is_some_with)]
+#![feature(nonzero_ops)]
+#![feature(local_key_cell_methods)]
#![warn(rust_2018_idioms)]
#![allow(
- clippy::cast_lossless,
clippy::collapsible_else_if,
clippy::collapsible_if,
clippy::comparison_chain,
clippy::enum_variant_names,
clippy::field_reassign_with_default,
- clippy::from_over_into,
- clippy::if_same_then_else,
clippy::manual_map,
- clippy::needless_lifetimes,
clippy::new_without_default,
clippy::single_match,
- clippy::useless_format
+ clippy::useless_format,
+ clippy::derive_partial_eq_without_eq,
+ clippy::derive_hash_xor_eq,
+ clippy::too_many_arguments
)]
extern crate rustc_apfloat;
extern crate rustc_span;
extern crate rustc_target;
-mod data_race;
+mod concurrency;
mod diagnostics;
mod eval;
mod helpers;
// Make all those symbols available in the same place as our own.
pub use rustc_const_eval::interpret::*;
// Resolve ambiguity.
-pub use rustc_const_eval::interpret::{self, AllocMap, PlaceTy};
+pub use rustc_const_eval::interpret::{self, AllocMap, PlaceTy, Provenance as _};
pub use crate::shims::dlsym::{Dlsym, EvalContextExt as _};
pub use crate::shims::env::{EnvVars, EvalContextExt as _};
pub use crate::shims::tls::{EvalContextExt as _, TlsData};
pub use crate::shims::EvalContextExt as _;
-pub use crate::data_race::{
- AtomicFenceOp, AtomicReadOp, AtomicRwOp, AtomicWriteOp,
+pub use crate::concurrency::data_race::{
+ AtomicFenceOrd, AtomicReadOrd, AtomicRwOrd, AtomicWriteOrd,
EvalContextExt as DataRaceEvalContextExt,
};
pub use crate::diagnostics::{
pub use crate::eval::{
create_ecx, eval_entry, AlignmentCheck, BacktraceStyle, IsolatedOp, MiriConfig, RejectOpWith,
};
-pub use crate::helpers::EvalContextExt as HelpersEvalContextExt;
+pub use crate::helpers::{CurrentSpan, EvalContextExt as HelpersEvalContextExt};
+pub use crate::intptrcast::ProvenanceMode;
pub use crate::machine::{
- AllocExtra, Evaluator, FrameData, MiriEvalContext, MiriEvalContextExt, MiriMemoryKind, Tag,
- NUM_CPUS, PAGE_SIZE, STACK_ADDR, STACK_SIZE,
+ AllocExtra, Evaluator, FrameData, MiriEvalContext, MiriEvalContextExt, MiriMemoryKind,
+ Provenance, ProvenanceExtra, NUM_CPUS, PAGE_SIZE, STACK_ADDR, STACK_SIZE,
};
pub use crate::mono_hash_map::MonoHashMap;
pub use crate::operator::EvalContextExt as OperatorEvalContextExt;
pub use crate::range_map::RangeMap;
pub use crate::stacked_borrows::{
- CallId, EvalContextExt as StackedBorEvalContextExt, Item, Permission, PtrId, SbTag, Stack,
- Stacks,
+ CallId, EvalContextExt as StackedBorEvalContextExt, Item, Permission, SbTag, Stack, Stacks,
};
pub use crate::sync::{CondvarId, EvalContextExt as SyncEvalContextExt, MutexId, RwLockId};
pub use crate::thread::{