clang  6.0.0svn
Public Member Functions | Friends | List of all members
clang::CallEnter Class Reference

Represents a point when we begin processing an inlined call. More...

#include "clang/Analysis/ProgramPoint.h"

Inheritance diagram for clang::CallEnter:
Inheritance graph
[legend]
Collaboration diagram for clang::CallEnter:
Collaboration graph
[legend]

Public Member Functions

 CallEnter (const Stmt *stmt, const StackFrameContext *calleeCtx, const LocationContext *callerCtx)
 
const StmtgetCallExpr () const
 
const StackFrameContextgetCalleeContext () const
 
const CFGBlockgetEntry () const
 Returns the entry block in the CFG for the entered function. More...
 
- Public Member Functions inherited from clang::ProgramPoint
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. More...
 
template<typename T >
castAs () const
 Convert to the specified ProgramPoint type, asserting that this ProgramPoint is of the desired type. More...
 
template<typename T >
Optional< T > getAs () const
 Convert to the specified ProgramPoint type, returning None if this ProgramPoint is not of the desired type. More...
 
Kind getKind () const
 
bool isPurgeKind ()
 Is this a program point corresponding to purge/removal of dead symbols and bindings. More...
 
const ProgramPointTaggetTag () const
 
const LocationContextgetLocationContext () const
 
unsigned getHashValue () const
 
bool operator== (const ProgramPoint &RHS) const
 
bool operator!= (const ProgramPoint &RHS) const
 
void Profile (llvm::FoldingSetNodeID &ID) const
 

Friends

class ProgramPoint
 

Additional Inherited Members

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

Detailed Description

Represents a point when we begin processing an inlined call.

CallEnter uses the caller's location context.

Definition at line 585 of file ProgramPoint.h.

Constructor & Destructor Documentation

◆ CallEnter()

clang::CallEnter::CallEnter ( const Stmt stmt,
const StackFrameContext calleeCtx,
const LocationContext callerCtx 
)
inline

Definition at line 587 of file ProgramPoint.h.

Member Function Documentation

◆ getCalleeContext()

const StackFrameContext* clang::CallEnter::getCalleeContext ( ) const
inline

◆ getCallExpr()

const Stmt* clang::CallEnter::getCallExpr ( ) const
inline

Definition at line 591 of file ProgramPoint.h.

◆ getEntry()

const CFGBlock* clang::CallEnter::getEntry ( ) const
inline

Returns the entry block in the CFG for the entered function.

Definition at line 600 of file ProgramPoint.h.

References clang::LocationContext::getCFG(), and clang::CFG::getEntry().

Referenced by clang::ento::ExprEngine::processCallEnter().

Friends And Related Function Documentation

◆ ProgramPoint

friend class ProgramPoint
friend

Definition at line 607 of file ProgramPoint.h.


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