pub struct ClobberWalker { /* private fields */ }Expand description
Reusable, query-local state for clobber walking. It owns no graph and no alias-domain data.
Implementations§
Source§impl ClobberWalker
impl ClobberWalker
pub fn new() -> Self
Sourcepub fn clobber<D, Q>(
&mut self,
graph: &MemoryAccessGraph<D>,
start: MemoryAccessId,
query: &Q,
alias_oracle: &impl AliasOracle<D, Q>,
) -> Option<MemoryClobber>
pub fn clobber<D, Q>( &mut self, graph: &MemoryAccessGraph<D>, start: MemoryAccessId, query: &Q, alias_oracle: &impl AliasOracle<D, Q>, ) -> Option<MemoryClobber>
Find the nearest definition that may alias query. Diverging
incoming clobbers resolve to their nearest MemoryPhi.
Sourcepub fn query<'a, D, Q, A>(
&'a mut self,
graph: &'a MemoryAccessGraph<D>,
query: &'a Q,
alias_oracle: &'a A,
) -> ClobberQuery<'a, D, Q, A>where
A: AliasOracle<D, Q>,
pub fn query<'a, D, Q, A>(
&'a mut self,
graph: &'a MemoryAccessGraph<D>,
query: &'a Q,
alias_oracle: &'a A,
) -> ClobberQuery<'a, D, Q, A>where
A: AliasOracle<D, Q>,
Start one alias query which may resolve several program points. Results are memoized only for the lifetime of this session and are discarded before a different alias query begins.
Trait Implementations§
Source§impl Debug for ClobberWalker
impl Debug for ClobberWalker
Source§impl Default for ClobberWalker
impl Default for ClobberWalker
Source§fn default() -> ClobberWalker
fn default() -> ClobberWalker
Returns the “default value” for a type. Read more
Auto Trait Implementations§
impl Freeze for ClobberWalker
impl RefUnwindSafe for ClobberWalker
impl Send for ClobberWalker
impl Sync for ClobberWalker
impl Unpin for ClobberWalker
impl UnsafeUnpin for ClobberWalker
impl UnwindSafe for ClobberWalker
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more