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.
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.