Skip to main content

EvalContextPrivExt

Trait EvalContextPrivExt 

Source
trait EvalContextPrivExt<'tcx>: MiriInterpCxExt<'tcx> {
    // Provided methods
    fn lookup_windows_tls_dtors(
        &mut self,
    ) -> InterpResult<'tcx, Vec<(ImmTy<'tcx>, Span)>> { ... }
    fn lookup_windows_fls_keys_with_dtors(
        &mut self,
    ) -> InterpResult<'tcx, VecDeque<u128>> { ... }
    fn schedule_windows_tls_dtor(
        &mut self,
        dtor: ImmTy<'tcx>,
        span: Span,
    ) -> InterpResult<'tcx> { ... }
    fn schedule_macos_tls_dtor(&mut self) -> InterpResult<'tcx, Poll<()>> { ... }
    fn schedule_next_pthread_tls_dtor(
        &mut self,
        state: &mut RunningPthreadDtorState,
    ) -> InterpResult<'tcx, Poll<()>> { ... }
    fn schedule_next_windows_fls_dtor(
        &mut self,
        state: &mut RunningWindowsDtorState,
    ) -> InterpResult<'tcx, Poll<()>> { ... }
}

Provided Methods§

Source

fn lookup_windows_tls_dtors( &mut self, ) -> InterpResult<'tcx, Vec<(ImmTy<'tcx>, Span)>>

Schedule TLS destructors for Windows. On windows, TLS destructors are managed by std.

Source

fn lookup_windows_fls_keys_with_dtors( &mut self, ) -> InterpResult<'tcx, VecDeque<u128>>

Lookup all the FLS keys (which are stored as TLS keys) that have a destructor. See also: schedule_next_windows_fls_dtor.

Source

fn schedule_windows_tls_dtor( &mut self, dtor: ImmTy<'tcx>, span: Span, ) -> InterpResult<'tcx>

Source

fn schedule_macos_tls_dtor(&mut self) -> InterpResult<'tcx, Poll<()>>

Schedule the macOS thread local storage destructors to be executed.

Source

fn schedule_next_pthread_tls_dtor( &mut self, state: &mut RunningPthreadDtorState, ) -> InterpResult<'tcx, Poll<()>>

Schedule a pthread TLS destructor. Returns true if found a destructor to schedule, and false otherwise.

Source

fn schedule_next_windows_fls_dtor( &mut self, state: &mut RunningWindowsDtorState, ) -> InterpResult<'tcx, Poll<()>>

Schedule a Windows FLS destructor, if one is found.

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§

Source§

impl<'tcx> EvalContextPrivExt<'tcx> for MiriInterpCx<'tcx>