move some configuration enums to a more logical place
This commit is contained in:
parent
8236def69f
commit
821a44d3ef
3 changed files with 63 additions and 65 deletions
|
|
@ -32,65 +32,6 @@ pub enum MiriEntryFnType {
|
|||
/// will hang the program.
|
||||
const MAIN_THREAD_YIELDS_AT_SHUTDOWN: u32 = 256;
|
||||
|
||||
#[derive(Copy, Clone, Debug, PartialEq)]
|
||||
pub enum AlignmentCheck {
|
||||
/// Do not check alignment.
|
||||
None,
|
||||
/// Check alignment "symbolically", i.e., using only the requested alignment for an allocation and not its real base address.
|
||||
Symbolic,
|
||||
/// Check alignment on the actual physical integer address.
|
||||
Int,
|
||||
}
|
||||
|
||||
#[derive(Copy, Clone, Debug, PartialEq)]
|
||||
pub enum RejectOpWith {
|
||||
/// Isolated op is rejected with an abort of the machine.
|
||||
Abort,
|
||||
|
||||
/// If not Abort, miri returns an error for an isolated op.
|
||||
/// Following options determine if user should be warned about such error.
|
||||
/// Do not print warning about rejected isolated op.
|
||||
NoWarning,
|
||||
|
||||
/// Print a warning about rejected isolated op, with backtrace.
|
||||
Warning,
|
||||
|
||||
/// Print a warning about rejected isolated op, without backtrace.
|
||||
WarningWithoutBacktrace,
|
||||
}
|
||||
|
||||
#[derive(Copy, Clone, Debug, PartialEq)]
|
||||
pub enum IsolatedOp {
|
||||
/// Reject an op requiring communication with the host. By
|
||||
/// default, miri rejects the op with an abort. If not, it returns
|
||||
/// an error code, and prints a warning about it. Warning levels
|
||||
/// are controlled by `RejectOpWith` enum.
|
||||
Reject(RejectOpWith),
|
||||
|
||||
/// Execute op requiring communication with the host, i.e. disable isolation.
|
||||
Allow,
|
||||
}
|
||||
|
||||
#[derive(Debug, Copy, Clone, PartialEq, Eq)]
|
||||
pub enum BacktraceStyle {
|
||||
/// Prints a terser backtrace which ideally only contains relevant information.
|
||||
Short,
|
||||
/// Prints a backtrace with all possible information.
|
||||
Full,
|
||||
/// Prints only the frame that the error occurs in.
|
||||
Off,
|
||||
}
|
||||
|
||||
#[derive(Debug, Copy, Clone, PartialEq, Eq)]
|
||||
pub enum ValidationMode {
|
||||
/// Do not perform any kind of validation.
|
||||
No,
|
||||
/// Validate the interior of the value, but not things behind references.
|
||||
Shallow,
|
||||
/// Fully recursively validate references.
|
||||
Deep,
|
||||
}
|
||||
|
||||
/// Configuration needed to spawn a Miri instance.
|
||||
#[derive(Clone)]
|
||||
pub struct MiriConfig {
|
||||
|
|
|
|||
|
|
@ -138,15 +138,13 @@ pub use crate::data_structures::mono_hash_map::MonoHashMap;
|
|||
pub use crate::diagnostics::{
|
||||
EvalContextExt as _, NonHaltingDiagnostic, TerminationInfo, report_error,
|
||||
};
|
||||
pub use crate::eval::{
|
||||
AlignmentCheck, BacktraceStyle, IsolatedOp, MiriConfig, MiriEntryFnType, RejectOpWith,
|
||||
ValidationMode, create_ecx, eval_entry,
|
||||
};
|
||||
pub use crate::eval::{MiriConfig, MiriEntryFnType, create_ecx, eval_entry};
|
||||
pub use crate::helpers::{AccessKind, EvalContextExt as _, ToU64 as _, ToUsize as _};
|
||||
pub use crate::intrinsics::EvalContextExt as _;
|
||||
pub use crate::machine::{
|
||||
AllocExtra, DynMachineCallback, FrameExtra, MachineCallback, MemoryKind, MiriInterpCx,
|
||||
MiriInterpCxExt, MiriMachine, MiriMemoryKind, PrimitiveLayouts, Provenance, ProvenanceExtra,
|
||||
AlignmentCheck, AllocExtra, BacktraceStyle, DynMachineCallback, FrameExtra, IsolatedOp,
|
||||
MachineCallback, MemoryKind, MiriInterpCx, MiriInterpCxExt, MiriMachine, MiriMemoryKind,
|
||||
PrimitiveLayouts, Provenance, ProvenanceExtra, RejectOpWith, ValidationMode,
|
||||
};
|
||||
pub use crate::operator::EvalContextExt as _;
|
||||
pub use crate::provenance_gc::{EvalContextExt as _, LiveAllocs, VisitProvenance, VisitWith};
|
||||
|
|
|
|||
|
|
@ -49,6 +49,65 @@ pub const SIGRTMAX: i32 = 42;
|
|||
/// base address for each evaluation would produce unbounded memory usage.
|
||||
const ADDRS_PER_ANON_GLOBAL: usize = 32;
|
||||
|
||||
#[derive(Copy, Clone, Debug, PartialEq)]
|
||||
pub enum AlignmentCheck {
|
||||
/// Do not check alignment.
|
||||
None,
|
||||
/// Check alignment "symbolically", i.e., using only the requested alignment for an allocation and not its real base address.
|
||||
Symbolic,
|
||||
/// Check alignment on the actual physical integer address.
|
||||
Int,
|
||||
}
|
||||
|
||||
#[derive(Copy, Clone, Debug, PartialEq)]
|
||||
pub enum RejectOpWith {
|
||||
/// Isolated op is rejected with an abort of the machine.
|
||||
Abort,
|
||||
|
||||
/// If not Abort, miri returns an error for an isolated op.
|
||||
/// Following options determine if user should be warned about such error.
|
||||
/// Do not print warning about rejected isolated op.
|
||||
NoWarning,
|
||||
|
||||
/// Print a warning about rejected isolated op, with backtrace.
|
||||
Warning,
|
||||
|
||||
/// Print a warning about rejected isolated op, without backtrace.
|
||||
WarningWithoutBacktrace,
|
||||
}
|
||||
|
||||
#[derive(Copy, Clone, Debug, PartialEq)]
|
||||
pub enum IsolatedOp {
|
||||
/// Reject an op requiring communication with the host. By
|
||||
/// default, miri rejects the op with an abort. If not, it returns
|
||||
/// an error code, and prints a warning about it. Warning levels
|
||||
/// are controlled by `RejectOpWith` enum.
|
||||
Reject(RejectOpWith),
|
||||
|
||||
/// Execute op requiring communication with the host, i.e. disable isolation.
|
||||
Allow,
|
||||
}
|
||||
|
||||
#[derive(Debug, Copy, Clone, PartialEq, Eq)]
|
||||
pub enum BacktraceStyle {
|
||||
/// Prints a terser backtrace which ideally only contains relevant information.
|
||||
Short,
|
||||
/// Prints a backtrace with all possible information.
|
||||
Full,
|
||||
/// Prints only the frame that the error occurs in.
|
||||
Off,
|
||||
}
|
||||
|
||||
#[derive(Debug, Copy, Clone, PartialEq, Eq)]
|
||||
pub enum ValidationMode {
|
||||
/// Do not perform any kind of validation.
|
||||
No,
|
||||
/// Validate the interior of the value, but not things behind references.
|
||||
Shallow,
|
||||
/// Fully recursively validate references.
|
||||
Deep,
|
||||
}
|
||||
|
||||
/// Extra data stored with each stack frame
|
||||
pub struct FrameExtra<'tcx> {
|
||||
/// Extra data for the Borrow Tracker.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue