Expand description
Shared alias hazard analysis for both legacy and VM backends.
This module extracts the MIR-level hazard scanning logic from
smt_check/alias.rs and makes it independent of the old forward
verifier (ForwardVisitResult, PtsGraph, SmtChecker).
The VM backend provides its own origin resolution via
vm/alias.rs and calls into this module for hazard scanning.
StructsΒ§
EnumsΒ§
FunctionsΒ§
- alias_
from_ πrvalue - alias_
producer - alias_
proved_ for_ param_ local - alias_
proved_ for_ param_ local_ from_ origin - any_
struct_ field_ origin - as_
ptr_ provenance_ origins - blocks_
reachable_ after_ call - Collect all basic blocks reachable after (and including) a call block.
- call_
destination - Return the destination local for a checkpointβs call or deref.
- call_
target_ πdef_ id - callsite_
arg_ origins - collect_
place_ aliases - Build a mapping from MIR locals to their resolved PlaceKey origins.
- deep_
resolve_ place - Follow local-origin associations transitively to resolve to the ultimate source (parameter or root local) and accumulated field path.
- destination_
flows_ to_ return - escaped_
self_ field_ violation - expand_
hazard_ πalias_ locals - expand_
origin_ πaliases - find_
as_ πptr_ receivers - hazard_
used_ πafter_ block - hazard_
used_ πafter_ statement - impls_
for_ πstruct - is_
origin_ a_ reference - is_
ownership_ πreturn_ api - is_
ownership_ πtransfer_ terminator - is_
ptr_ πadd_ offset_ eq - is_
ptr_ πfrom_ ptr_ add - is_
vec_ πinvalidating_ method - kill_
strongly_ πupdated_ origins - local_
callsites - local_
hazard_ violation - local_
hazard_ violation_ with - local_
traces_ πto_ self_ field - method_
exposes_ πself_ field - method_
writes_ πself_ field - operand_
mir_ place - Extract the MIR Place from an operand.
- operand_
place - Extract a PlaceKey from a MIR operand.
- ownership_
transfer_ violation - param_
index_ of_ origin - place_
is_ πraw_ access_ to_ any_ origin - place_
is_ πraw_ access_ to_ live_ origin - place_
is_ πraw_ access_ to_ origin - place_
key_ πis_ prefix_ of - place_
raw_ πaccesses_ self_ field - places_
holding_ πtransferred_ pointer - pre_
existing_ πview_ on_ origin - private_
fn_ callsite_ delegation - public_
raw_ πfield - raw_
access_ conflicts - resolve_
mir_ place - Resolve a MIR place through alias mapping to get a canonical PlaceKey.
- resolve_
param_ origin - resolve_
place_ πfor_ key - reverse_
postorder_ πblocks - rvalue_
any_ place_ matching - Check whether any MIR place used in an rvalue matches a predicate.
- rvalue_
copies_ πlive_ origin_ value - rvalue_
has_ πhazard_ local_ base - rvalue_
mentions_ πany_ local - rvalue_
mentions_ πlocal - rvalue_
mentions_ πorigin - rvalue_
reads_ πany_ origin - rvalue_
reads_ πlike_ view - rvalue_
reads_ πlive_ origin - self_
borrow_ πmutability - self_
field_ πkey - self_
field_ origin - splice_
holder_ πfields - statement_
uses_ πany_ local - terminator_
invalidates_ πvec_ owner - terminator_
is_ πbenign_ origin_ use - terminator_
returns_ πownership - terminator_
uses_ πany_ local - terminator_
uses_ πlive_ origin - terminator_
uses_ πorigin - terminator_
writes_ πorigin - trace_
place_ root - Trace a place back to its root local via local origin map.
- trace_
raw_ ptr_ through_ call - Trace a raw pointer local back through call terminators to find the
originating place (e.g. slice from
get_unchecked). - type_
contains_ πref_ or_ ptr - vec_
owners_ πfor_ origins