Crate miri

source ·

Re-exports§

  • pub use rustc_const_eval::interpret;
  • pub use rustc_const_eval::interpret::AllocMap;
  • pub use rustc_const_eval::interpret::PlaceTy;
  • pub use rustc_const_eval::interpret::Provenance as _;
  • pub use crate::intrinsics::EvalContextExt as _;
  • pub use crate::shims::env::EvalContextExt as _;
  • pub use crate::shims::foreign_items::EvalContextExt as _;
  • pub use crate::shims::os_str::EvalContextExt as _;
  • pub use crate::shims::panic::EvalContextExt as _;
  • pub use crate::shims::time::EvalContextExt as _;
  • pub use crate::alloc_addresses::EvalContextExt as _;
  • pub use crate::borrow_tracker::stacked_borrows::EvalContextExt as _;
  • pub use crate::borrow_tracker::tree_borrows::EvalContextExt as _;
  • pub use crate::borrow_tracker::EvalContextExt as _;
  • pub use crate::concurrency::data_race::EvalContextExt as _;
  • pub use crate::concurrency::init_once::EvalContextExt as _;
  • pub use crate::concurrency::sync::EvalContextExt as _;
  • pub use crate::concurrency::thread::EvalContextExt as _;
  • pub use crate::diagnostics::EvalContextExt as _;
  • pub use crate::helpers::EvalContextExt as _;
  • pub use crate::operator::EvalContextExt as _;
  • pub use crate::provenance_gc::EvalContextExt as _;
  • pub use rustc_const_eval::interpret::*;

Structs§

  • Extra per-allocation data
  • Tracking pointer provenance
  • Holds all of the relevant data for when unwinding hits a try frame.
  • A monotone clock used for Instant simulation.
  • 0 is used to indicate that the id was not yet assigned and, therefore, is not a valid identifier.
  • Type of dynamic symbols (for dlsym et al)
  • Extra data stored with each stack frame
  • 0 is used to indicate that the id was not yet assigned and, therefore, is not a valid identifier.
  • An item in the per-location borrow stack.
  • Allocation bytes that explicitly handle the layout of the data they’re storing. This is necessary to interface with native code that accesses the program store in Miri.
  • Configuration needed to spawn a Miri instance.
  • The machine itself.
  • 0 is used to indicate that the id was not yet assigned and, therefore, is not a valid identifier.
  • Precomputed layouts of primitive types
  • 0 is used to indicate that the id was not yet assigned and, therefore, is not a valid identifier.
  • Extra per-location state.
  • Extra per-allocation state.
  • A thread identifier.
  • A set of threads.
  • Tree structure with both parents and children since we want to be able to traverse the tree efficiently in both directions.

Enums§

Constants§

  • Insert rustc arguments at the beginning of the argument list that Miri wants to be set per default, for maximal validation power. Also disable the MIR pass that inserts an alignment check on every pointer dereference. Miri does that too, and with a better error message.

Traits§

Functions§

  • Returns a freshly created InterpCx. Public because this is also used by priroda.
  • Evaluates the entry function specified by entry_id. Returns Some(return_code) if program executed completed. Returns None if an evaluation error occurred.
  • Emit a custom diagnostic without going through the miri-engine machinery.

Type Aliases§