MCPcopy Create free account
hub / github.com/CodeSentryAI/lockbud / inter_points_to

Method inter_points_to

src/analysis/pointsto/mod.rs:825–848  ·  view source on GitHub ↗
(
        &mut self,
        instance1: &Instance<'tcx>,
        pointer: ConstraintNode<'tcx>,
        instance2: &Instance<'tcx>,
        pointee: ConstraintNode<'tcx>,
    )

Source from the content-addressed store, hash-verified

823 }
824
825 pub fn inter_points_to(
826 &mut self,
827 instance1: &Instance<'tcx>,
828 pointer: ConstraintNode<'tcx>,
829 instance2: &Instance<'tcx>,
830 pointee: ConstraintNode<'tcx>,
831 ) -> ApproximateAliasKind {
832 let body1 = self.tcx.instance_mir(instance1.def);
833 let points_to_map = self.get_or_insert_pts(instance1.def_id(), body1).clone();
834 let mut final_alias_kind = ApproximateAliasKind::Unknown;
835 let set = match points_to_map.get(&pointer) {
836 Some(set) => set,
837 None => return ApproximateAliasKind::Unlikely,
838 };
839 for local_pointee in set {
840 let alias_kind = self
841 .interproc_alias(instance1, local_pointee, instance2, &pointee)
842 .unwrap_or(ApproximateAliasKind::Unknown);
843 if alias_kind > final_alias_kind {
844 final_alias_kind = alias_kind;
845 }
846 }
847 final_alias_kind
848 }
849
850 /// Get the points-to info from cache `pts`.
851 /// If not exists, then perform points-to analysis

Callers 1

points_toMethod · 0.80

Calls 2

get_or_insert_ptsMethod · 0.80
interproc_aliasMethod · 0.80

Tested by

no test coverage detected