clang 22.0.0git
Namespaces | Classes | Typedefs | Enumerations | Functions
clang::lifetimes::internal Namespace Reference

Namespaces

namespace  utils
 

Classes

struct  AccessPath
 Represents the storage location being borrowed, e.g., a specific stack variable. More...
 
class  AssignOriginFact
 
class  DataflowAnalysis
 A generic, policy-based driver for dataflow analyses. More...
 
struct  ExpiredLattice
 The dataflow lattice for tracking the set of expired loans. More...
 
class  ExpiredLoansAnalysis
 The analysis that tracks which loans have expired. More...
 
class  ExpireFact
 
class  Fact
 An abstract base class for a single, atomic lifetime-relevant event. More...
 
class  FactGenerator
 
class  FactManager
 
struct  ID
 A generic, type-safe wrapper for an ID, distinguished by its Tag type. More...
 
class  IssueFact
 
class  LifetimeChecker
 
struct  LifetimeFactory
 An object to hold the factories for immutable collections, ensuring that all created states share the same underlying memory management. More...
 
class  LifetimeSafetyAnalysis
 Running the lifetime safety analysis and querying its results. More...
 
struct  Loan
 Information about a single borrow, or "Loan". More...
 
class  LoanManager
 Manages the creation, storage and retrieval of loans. More...
 
class  LoanPropagationAnalysis
 The analysis that tracks which loans belong to which origins. More...
 
struct  LoanPropagationLattice
 Represents the dataflow lattice for loan propagation. More...
 
struct  Origin
 An Origin is a symbolic identifier that represents the set of possible loans a pointer-like object could hold at any given time. More...
 
class  OriginManager
 Manages the creation, storage, and retrieval of origins for pointer-like variables and expressions. More...
 
struct  PendingWarning
 Struct to store the complete context for a potential lifetime violation. More...
 
class  ReturnOfOriginFact
 
class  TestPointFact
 A dummy-fact used to mark a specific point in the code for testing. More...
 
class  UseFact
 

Typedefs

using LoanID = ID< struct LoanTag >
 
using OriginID = ID< struct OriginTag >
 
using LoanSet = llvm::ImmutableSet< LoanID >
 
using OriginSet = llvm::ImmutableSet< OriginID >
 
using ProgramPoint = const Fact *
 A ProgramPoint identifies a location in the CFG by pointing to a specific Fact.
 
using OriginLoanMap = llvm::ImmutableMap< OriginID, LoanSet >
 
using ExpiredLoanMap = llvm::ImmutableMap< LoanID, const ExpireFact * >
 

Enumerations

enum class  Direction { Forward , Backward }
 

Functions

template<typename Tag >
llvm::raw_ostream & operator<< (llvm::raw_ostream &OS, ID< Tag > ID)
 

Typedef Documentation

◆ ExpiredLoanMap

using clang::lifetimes::internal::ExpiredLoanMap = typedef llvm::ImmutableMap<LoanID, const ExpireFact *>

Definition at line 795 of file LifetimeSafety.cpp.

◆ LoanID

using clang::lifetimes::internal::LoanID = typedef ID<struct LoanTag>

Definition at line 83 of file LifetimeSafety.h.

◆ LoanSet

using clang::lifetimes::internal::LoanSet = typedef llvm::ImmutableSet<LoanID>

Definition at line 89 of file LifetimeSafety.h.

◆ OriginID

using clang::lifetimes::internal::OriginID = typedef ID<struct OriginTag>

Definition at line 84 of file LifetimeSafety.h.

◆ OriginLoanMap

using clang::lifetimes::internal::OriginLoanMap = typedef llvm::ImmutableMap<OriginID, LoanSet>

Definition at line 794 of file LifetimeSafety.cpp.

◆ OriginSet

using clang::lifetimes::internal::OriginSet = typedef llvm::ImmutableSet<OriginID>

Definition at line 90 of file LifetimeSafety.h.

◆ ProgramPoint

A ProgramPoint identifies a location in the CFG by pointing to a specific Fact.

identified by a lifetime-related event (Fact).

A ProgramPoint has "after" semantics: it represents the location immediately after its corresponding Fact.

Definition at line 97 of file LifetimeSafety.h.

Enumeration Type Documentation

◆ Direction

Enumerator
Forward 
Backward 

Definition at line 580 of file LifetimeSafety.cpp.

Function Documentation

◆ operator<<()

template<typename Tag >
llvm::raw_ostream & clang::lifetimes::internal::operator<< ( llvm::raw_ostream &  OS,
ID< Tag >  ID 
)
inline

Definition at line 79 of file LifetimeSafety.h.

References clang::lifetimes::internal::ID< Tag >::Value.