clang 22.0.0git
clang::BlockEntrance Class Reference

#include "clang/Analysis/ProgramPoint.h"

Inheritance diagram for clang::BlockEntrance:
[legend]

Public Member Functions

 BlockEntrance (const CFGBlock *PrevBlock, const CFGBlock *CurrBlock, const LocationContext *L, const ProgramPointTag *Tag=nullptr)
const CFGBlockgetPreviousBlock () const
const CFGBlockgetBlock () const
std::optional< CFGElementgetFirstElement () const
Public Member Functions inherited from clang::ProgramPoint
std::optional< SourceLocationgetSourceLocation () const
ProgramPoint withTag (const ProgramPointTag *tag) const
 Create a new ProgramPoint object that is the same as the original except for using the specified tag value.
template<typename T>
T castAs () const
 Convert to the specified ProgramPoint type, asserting that this ProgramPoint is of the desired type.
template<typename T>
std::optional< TgetAs () const
 Convert to the specified ProgramPoint type, returning std::nullopt if this ProgramPoint is not of the desired type.
Kind getKind () const
bool isPurgeKind ()
 Is this a program point corresponding to purge/removal of dead symbols and bindings.
const ProgramPointTaggetTag () const
const LocationContextgetLocationContext () const
const StackFrameContextgetStackFrame () const
unsigned getHashValue () const
bool operator== (const ProgramPoint &RHS) const
bool operator!= (const ProgramPoint &RHS) const
void Profile (llvm::FoldingSetNodeID &ID) const
void printJson (llvm::raw_ostream &Out, const char *NL="\n") const
LLVM_DUMP_METHOD void dump () const

Friends

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

Additional Inherited Members

Public Types inherited from clang::ProgramPoint
enum  Kind {
  BlockEdgeKind , BlockEntranceKind , BlockExitKind , PreStmtKind ,
  PreStmtPurgeDeadSymbolsKind , PostStmtPurgeDeadSymbolsKind , PostStmtKind , PreLoadKind ,
  PostLoadKind , PreStoreKind , PostStoreKind , PostConditionKind ,
  PostLValueKind , PostAllocatorCallKind , MinPostStmtKind = PostStmtKind , MaxPostStmtKind = PostAllocatorCallKind ,
  PostInitializerKind , CallEnterKind , CallExitBeginKind , CallExitEndKind ,
  FunctionExitKind , PreImplicitCallKind , PostImplicitCallKind , MinImplicitCallKind = PreImplicitCallKind ,
  MaxImplicitCallKind = PostImplicitCallKind , LoopExitKind , EpsilonKind
}
Static Public Member Functions inherited from clang::ProgramPoint
static StringRef getProgramPointKindName (Kind K)
static ProgramPoint getProgramPoint (const Stmt *S, ProgramPoint::Kind K, const LocationContext *LC, const ProgramPointTag *tag)
Protected Member Functions inherited from clang::ProgramPoint
 ProgramPoint ()=default
 ProgramPoint (const void *P, Kind k, const LocationContext *l, const ProgramPointTag *tag=nullptr, CFGBlock::ConstCFGElementRef ElemRef={nullptr, 0})
 ProgramPoint (const void *P1, const void *P2, Kind k, const LocationContext *l, const ProgramPointTag *tag=nullptr, CFGBlock::ConstCFGElementRef ElemRef={nullptr, 0})
const void * getData1 () const
const void * getData2 () const
void setData2 (const void *d)
CFGBlock::ConstCFGElementRef getElementRef () const

Detailed Description

Definition at line 225 of file ProgramPoint.h.

Constructor & Destructor Documentation

◆ BlockEntrance()

clang::BlockEntrance::BlockEntrance ( const CFGBlock * PrevBlock,
const CFGBlock * CurrBlock,
const LocationContext * L,
const ProgramPointTag * Tag = nullptr )
inline

Definition at line 227 of file ProgramPoint.h.

References clang::ProgramPoint::BlockEntranceKind, and ProgramPoint.

Member Function Documentation

◆ getBlock()

const CFGBlock * clang::BlockEntrance::getBlock ( ) const
inline

◆ getFirstElement()

std::optional< CFGElement > clang::BlockEntrance::getFirstElement ( ) const
inline

Definition at line 241 of file ProgramPoint.h.

References clang::CFGBlock::empty(), clang::CFGBlock::front(), and getBlock().

◆ getPreviousBlock()

const CFGBlock * clang::BlockEntrance::getPreviousBlock ( ) const
inline

◆ ProgramPoint

friend class ProgramPoint
friend

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 247 of file ProgramPoint.h.

References clang::ProgramPoint::BlockEntranceKind, and ProgramPoint.

Referenced by BlockEntrance(), and ProgramPoint.


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