Skip to main content

Module alias_hazard

Module alias_hazard 

Source
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Β§

LocalCallsite
SelfFieldOrigin

EnumsΒ§

AliasProducer
HazardCheck
HazardKind
RawAccessKind

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 πŸ”’