[−][src]Module rustc_middle::mir::interpret
An interpreter for MIR used in CTFE and by miri.
Modules
| allocation | The virtual memory representation of the MIR interpreter. |
| error | |
| pointer | |
| queries | |
| value |
Structs
| AllocDecodingSession | |
| AllocDecodingState | |
| AllocId | |
| AllocMap | |
| Allocation | |
| ConstAlloc | Represents the result of const evaluation via the |
| GlobalId | Uniquely identifies one of the following: |
| InitMask | A bitmask where each bit refers to the byte with the same index. If the bit is |
| InterpErrorInfo | Packages the kind of error we got from the const code interpreter
up with a Rust-level backtrace of where the error occurred.
Thsese should always be constructed by calling |
| LitToConstInput | Input argument for |
| Pointer | Represents a pointer in the Miri engine. |
| Relocations | Relocations. |
| UninitBytesAccess | Details of an access to uninitialized bytes where it is not allowed. |
Enums
| AllocDiscriminant | |
| CheckInAllocMsg | Details of why a pointer had to be in-bounds. |
| ConstValue | Represents a constant value in Rust. |
| ErrorHandled | |
| GlobalAlloc | An allocation in the global (tcx-managed) memory can be either a function pointer, a static, or a "real" allocation with some data in it. |
| InterpError | |
| InvalidProgramInfo | Error information for when the program we executed turned out not to actually be a valid program. This cannot happen in stand-alone Miri, but it can happen during CTFE/ConstProp where we work on generic code or execution does not have all information available. |
| LitToConstError | Error type for |
| ResourceExhaustionInfo | Error information for when the program exhausted the resources granted to it by the interpreter. |
| Scalar | A |
| ScalarMaybeUninit | |
| State | |
| UndefinedBehaviorInfo | Error information for when the program caused Undefined Behavior. |
| UnsupportedOpInfo | Error information for when the program did something that might (or might not) be correct to do according to the Rust spec, but due to limitations in the interpreter, the operation could not be carried out. These limitations can differ between CTFE and the Miri engine, e.g., CTFE does not support dereferencing pointers at integral addresses. |
Traits
| AllocationExtra | |
| MachineStopType | A trait for machine-specific errors (or other "machine stop" conditions). |
| PointerArithmetic |
Functions
| get_slice_bytes | Gets the bytes of a constant slice value. |
| read_target_uint | |
| specialized_encode_alloc_id | |
| struct_error | |
| uabs | Computes the unsigned absolute value without wrapping or panicking. |
| write_target_uint |
Type Definitions
| DecodingSessionId | |
| EvalToAllocationRawResult | |
| EvalToConstValueResult | |
| InterpResult |