clang
9.0.0
|
#include "clang/Analysis/AnalysisDeclContext.h"
Public Types | |
enum | ContextKind { StackFrame, Scope, Block } |
Public Member Functions | |
virtual | ~LocationContext () |
ContextKind | getKind () const |
int64_t | getID () const |
AnalysisDeclContext * | getAnalysisDeclContext () const |
const LocationContext * | getParent () const |
bool | isParentOf (const LocationContext *LC) const |
const Decl * | getDecl () const |
CFG * | getCFG () const |
template<typename T > | |
T * | getAnalysis () const |
ParentMap & | getParentMap () const |
const ImplicitParamDecl * | getSelfDecl () const |
const StackFrameContext * | getStackFrame () const |
virtual bool | inTopFrame () const |
Return true if the current LocationContext has no caller context. More... | |
virtual void | Profile (llvm::FoldingSetNodeID &ID)=0 |
void | dumpStack (raw_ostream &Out, const char *NL="\, std::function< void(const LocationContext *)> printMoreInfoPerContext=[](const LocationContext *) {}) const |
void | printJson (raw_ostream &Out, const char *NL="\, unsigned int Space=0, bool IsDot=false, std::function< void(const LocationContext *)> printMoreInfoPerContext=[](const LocationContext *) {}) const |
void | dump () const |
Static Public Member Functions | |
static void | ProfileCommon (llvm::FoldingSetNodeID &ID, ContextKind ck, AnalysisDeclContext *ctx, const LocationContext *parent, const void *data) |
Protected Member Functions | |
LocationContext (ContextKind k, AnalysisDeclContext *ctx, const LocationContext *parent, int64_t ID) | |
Definition at line 217 of file AnalysisDeclContext.h.
Enumerator | |
---|---|
StackFrame | |
Scope | |
Block |
Definition at line 219 of file AnalysisDeclContext.h.
|
inlineprotected |
Definition at line 232 of file AnalysisDeclContext.h.
|
virtualdefault |
Referenced by clang::AnalysisDeclContext::~AnalysisDeclContext().
LLVM_DUMP_METHOD void LocationContext::dump | ( | ) | const |
Definition at line 572 of file AnalysisDeclContext.cpp.
void LocationContext::dumpStack | ( | raw_ostream & | Out, |
const char * | NL = "\n" , |
||
std::function< void(const LocationContext *)> | printMoreInfoPerContext = [](const LocationContext *) {} |
||
) | const |
Definition at line 475 of file AnalysisDeclContext.cpp.
References clang::ASTContext::getLangOpts(), getParent(), SM, and clang::PrintingPolicy::TerseOutput.
Referenced by clang::ento::PrettyStackTraceLocationContext::print().
|
inline |
Definition at line 257 of file AnalysisDeclContext.h.
Referenced by clang::ento::ExplodedNode::getAnalysis().
|
inline |
Definition at line 246 of file AnalysisDeclContext.h.
Referenced by clang::ento::ExprEngine::bindReturnValue(), findTopAutosynthesizedParentContext(), clang::ento::SValBuilder::getBlockPointer(), clang::ento::CallEvent::getCalleeAnalysisDeclContext(), clang::ento::CallEvent::getCalleeStackFrame(), clang::ento::CheckerContext::getCurrentAnalysisDeclContext(), clang::ObjCMethodCall::getInitialStackFrameContents(), getLocationForCaller(), clang::ento::SValBuilder::getRegionValueSymbolVal(), clang::ento::AnyFunctionCall::getRuntimeDefinition(), clang::ento::PathDiagnosticLocation::getStmt(), clang::ento::getWidenedLoopState(), isReceiverUnconsumedSelf(), clang::ento::retaincountchecker::isSynthesizedAccessor(), printObjectsUnderConstructionJson(), clang::ento::ExprEngine::removeDeadOnEndOfFunction(), clang::ento::PathDiagnosticCallPiece::setCallee(), shouldRemoveDeadBindings(), and clang::ento::ExprEngine::VisitCXXConstructExpr().
|
inline |
Definition at line 254 of file AnalysisDeclContext.h.
Referenced by clang::ento::CoreEngine::ExecuteWorkList(), clang::ento::CoreEngine::ExecuteWorkListWithInitialState(), clang::ento::ExplodedNode::getCFG(), clang::CallEnter::getEntry(), and clang::ento::BugReport::getStmt().
|
inline |
Definition at line 252 of file AnalysisDeclContext.h.
Referenced by clang::ento::retaincountchecker::RetainCountChecker::checkBeginFunction(), checkInvariantViolation(), checkSelfIvarsForInvariantViolation(), clang::ento::PathDiagnosticCallPiece::construct(), clang::ento::PathDiagnosticLocation::create(), clang::ento::ExprEngine::CreateCXXTemporaryObject(), clang::ento::PathDiagnosticLocation::createDeclBegin(), clang::ento::PathDiagnosticLocation::createDeclEnd(), clang::ento::CoreEngine::ExecuteWorkList(), clang::ento::CoreEngine::ExecuteWorkListWithInitialState(), generatePathDiagnosticForConsumer(), generatePathDiagnosticsForNode(), clang::CallEventManager::getCaller(), clang::ento::ExplodedNode::getCodeDecl(), clang::ento::MemRegionManager::getCXXThisRegion(), clang::ento::BugReport::getDeclWithIssue(), clang::ento::AnyFunctionCall::getInitialStackFrameContents(), clang::BlockCall::getInitialStackFrameContents(), clang::CXXInstanceCall::getInitialStackFrameContents(), clang::CXXConstructorCall::getInitialStackFrameContents(), clang::ObjCMethodCall::getInitialStackFrameContents(), clang::ento::ExprEngine::getInitialState(), isInMIGCall(), clang::ento::retaincountchecker::isSynthesizedAccessor(), clang::ento::ExprEngine::ProcessBaseDtor(), clang::ento::ExprEngine::processCFGBlockEntrance(), clang::ento::ExprEngine::ProcessMemberDtor(), llvm::FoldingSetTrait< ObjectState >::Profile(), recordFixedType(), reversePropagateInterestingSymbols(), clang::ento::PathDiagnosticCallPiece::setCallee(), clang::ento::ExprEngine::VisitCXXConstructExpr(), wasDifferentDeclUsedForInlining(), and willObjectBeAnalyzedLater().
|
inline |
Definition at line 242 of file AnalysisDeclContext.h.
|
inline |
Definition at line 240 of file AnalysisDeclContext.h.
Referenced by clang::StackFrameContext::classof(), clang::ScopeContext::classof(), and clang::BlockInvocationContext::classof().
|
inline |
Definition at line 248 of file AnalysisDeclContext.h.
References Parent.
Referenced by clang::ento::ExprEngine::CreateCXXTemporaryObject(), dumpStack(), findTopAutosynthesizedParentContext(), getArgumentValueString(), clang::CallEventManager::getCaller(), clang::ento::MemRegionManager::getCXXThisRegion(), clang::ento::ExprEngine::getInitialState(), clang::ento::ExprEngine::getObjectUnderConstruction(), getStackFrame(), getStackOrCaptureRegionForDeclContext(), isInMIGCall(), isParentOf(), isPointerToConst(), isReferenceCountingPointerDestructor(), clang::ento::Environment::printJson(), printJson(), clang::ento::ExprEngine::processCallExit(), clang::ento::ExprEngine::processEndOfFunction(), clang::ento::ExprEngine::removeDead(), and willObjectBeAnalyzedLater().
|
inline |
Definition at line 261 of file AnalysisDeclContext.h.
Referenced by clang::ObjCMethodCall::getMessageKind(), clang::ento::ExplodedNode::getParentMap(), clang::ento::ExplodedGraph::isInterestingLValueExpr(), optimizeEdges(), recordFixedType(), removePiecesWithInvalidLocations(), and clang::ento::ExprEngine::VisitCXXConstructExpr().
|
inline |
Definition at line 265 of file AnalysisDeclContext.h.
References dump(), and clang::AnalysisDeclContext::getSelfDecl().
Referenced by checkSelfIvarsForInvariantViolation(), clang::ObjCMethodCall::getSelfSVal(), and recordFixedType().
const StackFrameContext * LocationContext::getStackFrame | ( | ) | const |
Definition at line 441 of file AnalysisDeclContext.cpp.
References getParent().
Referenced by clang::ento::ExprEngine::bindReturnValue(), clang::ento::NodeBuilderContext::blockCount(), clang::ento::ExprEngine::CreateCXXTemporaryObject(), clang::ento::CoreEngine::ExecuteWorkListWithInitialState(), clang::ento::MemRegionManager::getAllocaRegion(), getArgumentValueString(), clang::ento::MemRegionManager::getBlockDataRegion(), clang::CallEventManager::getCaller(), clang::ento::MemRegionManager::getCompoundLiteralRegion(), clang::ento::MemRegionManager::getCXXTempObjectRegion(), clang::ento::MemRegionManager::getCXXThisRegion(), clang::ento::BugReport::getDeclWithIssue(), clang::ento::ExprEngine::getInitialState(), clang::ento::ExprEngine::getObjectUnderConstruction(), clang::ProgramPoint::getStackFrame(), clang::ento::getWidenedLoopState(), isInitializationOfVar(), isInMIGCall(), isPointerToConst(), isRecordEmpty(), clang::ento::WorkList::makeBFSBlockDFSContents(), clang::ento::WorkList::makeUnexploredFirst(), parameterTypeFromSVal(), clang::ento::Environment::printJson(), clang::ento::ExprEngine::ProcessBaseDtor(), clang::ento::ExprEngine::processCallExit(), clang::ento::ExprEngine::processCFGBlockEntrance(), clang::ento::ExprEngine::processEndOfFunction(), clang::ento::ExprEngine::ProcessMemberDtor(), llvm::FoldingSetTrait< ObjectState >::Profile(), recordFixedType(), REGISTER_MAP_WITH_PROGRAMSTATE(), clang::ento::ExprEngine::removeDead(), reversePropagateInterestingSymbols(), clang::ento::ExprEngine::VisitCallExpr(), clang::ento::ExprEngine::VisitCXXConstructExpr(), and wasRegionOfInterestModifiedAt().
|
virtual |
Return true if the current LocationContext has no caller context.
Reimplemented in clang::StackFrameContext.
Definition at line 451 of file AnalysisDeclContext.cpp.
References clang::AnalysisDeclContextManager::getStackFrame(), and clang::StackFrameContext::inTopFrame().
Referenced by clang::ento::MemRegionManager::getCXXThisRegion(), clang::ento::CheckerContext::inTopFrame(), and clang::ento::ExprEngine::processEndOfFunction().
bool LocationContext::isParentOf | ( | const LocationContext * | LC | ) | const |
Definition at line 455 of file AnalysisDeclContext.cpp.
References getParent(), and Parent.
Referenced by getAsPointeeSymbol(), and isReferenceCountingPointerDestructor().
void LocationContext::printJson | ( | raw_ostream & | Out, |
const char * | NL = "\n" , |
||
unsigned int | Space = 0 , |
||
bool | IsDot = false , |
||
std::function< void(const LocationContext *)> | printMoreInfoPerContext = [](const LocationContext *) {} |
||
) | const |
Definition at line 517 of file AnalysisDeclContext.cpp.
References clang::ASTContext::getLangOpts(), getParent(), clang::Indent(), SM, and clang::PrintingPolicy::TerseOutput.
Referenced by clang::ento::Environment::printJson(), and clang::ento::ExprEngine::printJson().
|
pure virtual |
Implemented in clang::BlockInvocationContext, clang::ScopeContext, and clang::StackFrameContext.
|
static |
Definition at line 350 of file AnalysisDeclContext.cpp.