clang 24.0.0git
clang::lifetimes::internal::LoanPropagationAnalysis Class Reference

#include "clang/Analysis/Analyses/LifetimeSafety/LoanPropagation.h"

Classes

class  Impl

Public Member Functions

 LoanPropagationAnalysis (const CFG &C, AnalysisDeclContext &AC, FactManager &F, OriginLoanMap::Factory &OriginLoanMapFactory, LoanSet::Factory &LoanSetFactory)
 ~LoanPropagationAnalysis ()
LoanSet getLoans (OriginID OID, ProgramPoint P) const
llvm::SmallVector< OriginIDbuildOriginFlowChain (ProgramPoint StartPoint, const OriginID StartOID, const LoanID TargetLoan, const CFG *Cfg) const
 Builds the chain of origins through which a loan has propagated.
llvm::SmallVector< OriginIDbuildOriginFlowChain (const UseFact *UF, const LoanID TargetLoan, const CFG *Cfg) const

Detailed Description

Definition at line 31 of file LoanPropagation.h.

Constructor & Destructor Documentation

◆ LoanPropagationAnalysis()

clang::lifetimes::internal::LoanPropagationAnalysis::LoanPropagationAnalysis ( const CFG & C,
AnalysisDeclContext & AC,
FactManager & F,
OriginLoanMap::Factory & OriginLoanMapFactory,
LoanSet::Factory & LoanSetFactory )

Definition at line 347 of file LoanPropagation.cpp.

References clang::C.

◆ ~LoanPropagationAnalysis()

clang::lifetimes::internal::LoanPropagationAnalysis::~LoanPropagationAnalysis ( )
default

Member Function Documentation

◆ buildOriginFlowChain() [1/2]

llvm::SmallVector< OriginID > clang::lifetimes::internal::LoanPropagationAnalysis::buildOriginFlowChain ( const UseFact * UF,
const LoanID TargetLoan,
const CFG * Cfg ) const

Definition at line 368 of file LoanPropagation.cpp.

◆ buildOriginFlowChain() [2/2]

llvm::SmallVector< OriginID > clang::lifetimes::internal::LoanPropagationAnalysis::buildOriginFlowChain ( ProgramPoint StartPoint,
const OriginID StartOID,
const LoanID TargetLoan,
const CFG * Cfg ) const

Builds the chain of origins through which a loan has propagated.

Starting from the last fact of the block containing StartPoint, this function performs a DFS over CFG blocks to explore all reachable blocks. Within each block, facts are processed in reverse order.

The traversal follows OriginFlowFacts backwards to reconstruct the sequence of origins through which the loan flowed, ending at the origin where the loan was originally issued.

Definition at line 362 of file LoanPropagation.cpp.

◆ getLoans()

LoanSet clang::lifetimes::internal::LoanPropagationAnalysis::getLoans ( OriginID OID,
ProgramPoint P ) const

The documentation for this class was generated from the following files: