pub trait EvalContextExt<'tcx>: MiriInterpCxExt<'tcx> {
// Provided methods
fn malloc_align(&self, size: u64) -> Align { ... }
fn check_rust_alloc_request(
&self,
size: u64,
align: u64,
) -> InterpResult<'tcx> { ... }
fn rust_special_allocator_method(
&mut self,
method: SpecialAllocatorMethod,
link_name: Symbol,
abi: &FnAbi<'tcx, Ty<'tcx>>,
args: &[OpTy<'tcx>],
dest: &PlaceTy<'tcx>,
) -> InterpResult<'tcx> { ... }
fn malloc(
&mut self,
size: u64,
init: AllocInit,
) -> InterpResult<'tcx, Pointer> { ... }
fn posix_memalign(
&mut self,
memptr: &OpTy<'tcx>,
align: &OpTy<'tcx>,
size: &OpTy<'tcx>,
) -> InterpResult<'tcx, Scalar> { ... }
fn free(&mut self, ptr: Pointer) -> InterpResult<'tcx> { ... }
fn realloc(
&mut self,
old_ptr: Pointer,
new_size: u64,
) -> InterpResult<'tcx, Pointer> { ... }
fn aligned_alloc(
&mut self,
align: &OpTy<'tcx>,
size: &OpTy<'tcx>,
) -> InterpResult<'tcx, Pointer> { ... }
}Provided Methods§
Sourcefn malloc_align(&self, size: u64) -> Align
fn malloc_align(&self, size: u64) -> Align
Returns the alignment that malloc would guarantee for requests of the given size.
Sourcefn check_rust_alloc_request(&self, size: u64, align: u64) -> InterpResult<'tcx>
fn check_rust_alloc_request(&self, size: u64, align: u64) -> InterpResult<'tcx>
Check some basic requirements for this allocation request: non-zero size, power-of-two alignment.
fn rust_special_allocator_method( &mut self, method: SpecialAllocatorMethod, link_name: Symbol, abi: &FnAbi<'tcx, Ty<'tcx>>, args: &[OpTy<'tcx>], dest: &PlaceTy<'tcx>, ) -> InterpResult<'tcx>
fn malloc(&mut self, size: u64, init: AllocInit) -> InterpResult<'tcx, Pointer>
fn posix_memalign( &mut self, memptr: &OpTy<'tcx>, align: &OpTy<'tcx>, size: &OpTy<'tcx>, ) -> InterpResult<'tcx, Scalar>
fn free(&mut self, ptr: Pointer) -> InterpResult<'tcx>
fn realloc( &mut self, old_ptr: Pointer, new_size: u64, ) -> InterpResult<'tcx, Pointer>
fn aligned_alloc( &mut self, align: &OpTy<'tcx>, size: &OpTy<'tcx>, ) -> InterpResult<'tcx, Pointer>
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".