This module is responsible for managing the absolute addresses that allocations are located at,
and for casting between pointers and integers based on those addresses.
Enters a [tracing::info_span] only if the “tracing” feature is enabled, otherwise does nothing.
This calls rustc_const_eval::enter_trace_span with MiriMachine as the first argument, which
will in turn call MiriMachine::enter_trace_span, which takes care of determining at compile
time whether to trace or not (and supposedly the call is compiled out if tracing is disabled).
Look at rustc_const_eval::enter_trace_span for complete documentation, examples and tips.
A macro for triggering an ICE.
Calling bug instead of panicking will result in a nicer error message and should
therefore be preferred over panic/unreachable or others.
A macro for triggering an ICE with a span.
Calling span_bug! instead of panicking will result in a nicer error message and point
at the code the compiler was compiling when it ICEd. This is the preferred way to trigger
ICEs.
Manager for managing blocking host I/O in a non-blocking manner.
We use [Poll] to poll for new I/O events from the OS for sources
registered using this manager.
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.
A struct which stores ReadinessInterests for a set of file descriptions
together with which interests are currently satisfied, and a list of
threads which should be unblocked once a ReadinessInterest of the
watcher is fulfilled.
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.
Evaluates the entry function specified by entry_id.
Returns Some(return_code) if program execution completed.
Returns None if an evaluation error occurred.