Skip to main content

rapx/analysis/points_to/
mod.rs

1//! Unified points-to and value-flow graph.
2//!
3//! The [`graph::PtsGraph`] provides a path-sensitive points-to representation
4//! used by both the MoP alias analysis, SafeDrop, and the verify/SMT pipeline.
5//! It records pointer-to-source relationships together with value-copy tracking
6//! and union-find alias partitions.
7//!
8//! # Slot registration
9//! [`builder::from_body`] pre-registers all MIR locals and their type-determined
10//! field slots up to configurable depth limits.
11//!
12//! # PlaceKey adapters
13//! `PtsGraph` exposes PlaceKey-oriented methods (`insert_place_edge`,
14//! `get_place_source`, `resolve_place`, `place_edges`) for consumers in the
15//! verify pipeline that work with [`crate::verify::def_use::PlaceKey`] rather
16//! than [`slot::Slot`].
17//!
18//! # Edge sources
19//! * `Rvalue::Ref`     — `&_x`  / `&mut _x`   → `_x`
20//! * `Rvalue::RawPtr`  — `&raw const/mut _x`  → `_x`
21//! * `ptr::add/sub/offset` / `as_ptr` / `into_raw` / `cast` / `from_raw_parts`
22//!   / NonNull constructors / ownership reconstruction — return → arg 0
23
24pub mod builder;
25pub mod graph;
26pub mod slot;