clang
10.0.0git
|
Represents a top-level expression in a basic block. More...
#include "clang/Analysis/CFG.h"
Public Types | |
enum | Kind { Initializer, ScopeBegin, ScopeEnd, NewAllocator, LifetimeEnds, LoopExit, Statement, Constructor, CXXRecordTypedCall, STMT_BEGIN = Statement, STMT_END = CXXRecordTypedCall, AutomaticObjectDtor, DeleteDtor, BaseDtor, MemberDtor, TemporaryDtor, DTOR_BEGIN = AutomaticObjectDtor, DTOR_END = TemporaryDtor } |
Public Member Functions | |
template<typename T > | |
T | castAs () const |
Convert to the specified CFGElement type, asserting that this CFGElement is of the desired type. More... | |
template<typename T > | |
Optional< T > | getAs () const |
Convert to the specified CFGElement type, returning None if this CFGElement is not of the desired type. More... | |
Kind | getKind () const |
void | dumpToStream (llvm::raw_ostream &OS) const |
void | dump () const |
Protected Member Functions | |
CFGElement (Kind kind, const void *Ptr1, const void *Ptr2=nullptr) | |
CFGElement ()=default | |
Protected Attributes | |
llvm::PointerIntPair< void *, 2 > | Data1 |
llvm::PointerIntPair< void *, 2 > | Data2 |
|
inlineprotected |
Definition at line 86 of file CFG.h.
References CFGElement(), and getKind().
|
protecteddefault |
Referenced by CFGElement().
|
inline |
Convert to the specified CFGElement type, asserting that this CFGElement is of the desired type.
Definition at line 98 of file CFG.h.
Referenced by CheckFallThrough(), clang::ento::CoreEngine::enqueueStmtNode(), getLocationForCaller(), print_elem(), clang::ento::ExprEngine::processCFGElement(), clang::ento::ExprEngine::ProcessImplicitDtor(), clang::consumed::ConsumedAnalyzer::run(), clang::ento::ExprEngine::VisitLogicalExpr(), clang::threadSafety::CFGWalker::walk(), and writeShouldKill().
|
inline |
Definition at line 127 of file CFG.h.
References dumpToStream().
Referenced by clang::CFGBlock::getParent(), and clang::CFG::size().
void CFGElement::dumpToStream | ( | llvm::raw_ostream & | OS | ) | const |
Definition at line 5432 of file CFG.cpp.
References print_elem().
|
inline |
Convert to the specified CFGElement type, returning None if this CFGElement is not of the desired type.
Definition at line 109 of file CFG.h.
References clang::None.
Referenced by Accumulate(), clang::ento::ExprEngine::bindReturnValue(), CheckFallThrough(), clang::ento::CoreEngine::ExecuteWorkListWithInitialState(), clang::CallEventManager::getCaller(), clang::CFGBlock::getLastCondition(), neverReturns(), print_elem(), ResolveCondition(), clang::ento::ExprEngine::VisitCXXConstructExpr(), and writeShouldKill().
|
inline |
Definition at line 118 of file CFG.h.
References dumpToStream().
Referenced by CFGElement(), getLocationForCaller(), clang::CFGTerminator::isStmtBranch(), clang::CFGTerminator::isTemporaryDtorsBranch(), clang::CFGTerminator::isVirtualBaseBranch(), print_elem(), clang::ento::ExprEngine::processCFGElement(), and clang::ento::ExprEngine::ProcessImplicitDtor().
|
protected |
Definition at line 83 of file CFG.h.
Referenced by clang::CFGNewAllocator::getAllocatorExpr(), clang::CFGBaseDtor::getBaseSpecifier(), clang::CFGTemporaryDtor::getBindTemporaryExpr(), clang::CFGDeleteDtor::getCXXRecordDecl(), clang::CFGMemberDtor::getFieldDecl(), clang::CFGInitializer::getInitializer(), clang::CFGLoopExit::getLoopStmt(), clang::CFGStmt::getStmt(), clang::CFGLifetimeEnds::getVarDecl(), clang::CFGScopeBegin::getVarDecl(), clang::CFGScopeEnd::getVarDecl(), and clang::CFGAutomaticObjDtor::getVarDecl().
|
protected |
Definition at line 84 of file CFG.h.
Referenced by clang::CFGConstructor::CFGConstructor(), clang::CFGCXXRecordTypedCall::CFGCXXRecordTypedCall(), clang::CFGConstructor::getConstructionContext(), clang::CFGCXXRecordTypedCall::getConstructionContext(), clang::CFGDeleteDtor::getDeleteExpr(), clang::CFGLifetimeEnds::getTriggerStmt(), clang::CFGScopeBegin::getTriggerStmt(), clang::CFGScopeEnd::getTriggerStmt(), and clang::CFGAutomaticObjDtor::getTriggerStmt().