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

Method intra_points_to

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

Source from the content-addressed store, hash-verified

799 }
800
801 pub fn intra_points_to(
802 &mut self,
803 instance: &Instance<'tcx>,
804 pointer: ConstraintNode<'tcx>,
805 pointee: ConstraintNode<'tcx>,
806 ) -> ApproximateAliasKind {
807 let body = self.tcx.instance_mir(instance.def);
808 let points_to_map = self.get_or_insert_pts(instance.def_id(), body).clone();
809 let mut final_alias_kind = ApproximateAliasKind::Unknown;
810 let set = match points_to_map.get(&pointer) {
811 Some(set) => set,
812 None => return ApproximateAliasKind::Unlikely,
813 };
814 for local_pointee in set {
815 let alias_kind = self
816 .intraproc_alias(instance, local_pointee, &pointee)
817 .unwrap_or(ApproximateAliasKind::Unknown);
818 if alias_kind > final_alias_kind {
819 final_alias_kind = alias_kind;
820 }
821 }
822 final_alias_kind
823 }
824
825 pub fn inter_points_to(
826 &mut self,

Callers 1

points_toMethod · 0.80

Calls 2

get_or_insert_ptsMethod · 0.80
intraproc_aliasMethod · 0.80

Tested by

no test coverage detected