From: Anna Zaks Date: Fri, 5 Aug 2011 23:47:13 +0000 (+0000) Subject: Static Analyzer: Add a convinience API. Add comment. X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=3f10e32b15e54f507aed90cb72d73c7acaa500bb;p=clang Static Analyzer: Add a convinience API. Add comment. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@137000 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/include/clang/StaticAnalyzer/Core/PathSensitive/CheckerContext.h b/include/clang/StaticAnalyzer/Core/PathSensitive/CheckerContext.h index 4429c6b2a7..27c52c3b12 100644 --- a/include/clang/StaticAnalyzer/Core/PathSensitive/CheckerContext.h +++ b/include/clang/StaticAnalyzer/Core/PathSensitive/CheckerContext.h @@ -90,6 +90,10 @@ public: return Eng.getSValBuilder(); } + SymbolManager &getSymbolManager() { + return getSValBuilder().getSymbolManager(); + } + ExplodedNode *generateNode(bool autoTransition = true) { assert(statement && "Only transitions with statements currently supported"); ExplodedNode *N = generateNodeImpl(statement, getState(), false, diff --git a/include/clang/StaticAnalyzer/Core/PathSensitive/SymbolManager.h b/include/clang/StaticAnalyzer/Core/PathSensitive/SymbolManager.h index 66ecba7dcf..42113167a1 100644 --- a/include/clang/StaticAnalyzer/Core/PathSensitive/SymbolManager.h +++ b/include/clang/StaticAnalyzer/Core/PathSensitive/SymbolManager.h @@ -389,6 +389,9 @@ public: const SymbolExtent *getExtentSymbol(const SubRegion *R); + /// Creates a metadata symbol associated with a specific region. + /// VisitCount can be used to differentiate regions corresponding to + /// different loop iterations, thus, making the symbol path-dependent. const SymbolMetadata* getMetadataSymbol(const MemRegion* R, const Stmt* S, QualType T, unsigned VisitCount, const void* SymbolTag = 0);