commit | 955cd444f445bcdbade1cdd3926254c8ee7890d8 | [log] [tgz] |
---|---|---|
author | Anna Zaks <ganna@apple.com> | Tue Aug 14 00:36:12 2012 +0000 |
committer | Anna Zaks <ganna@apple.com> | Tue Aug 14 00:36:12 2012 +0000 |
tree | edb299a5806be7a55aeeb2f01b4d7e1a8a6ce69c | |
parent | f41c0dd023b2990eee0296390a88641d157777f7 [diff] |
[analyzer] Add getStackFrame() to CheckerContext and ExplodedNode. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161819 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/include/clang/StaticAnalyzer/Core/PathSensitive/CheckerContext.h b/include/clang/StaticAnalyzer/Core/PathSensitive/CheckerContext.h index 0669b05..8c8e82c 100644 --- a/include/clang/StaticAnalyzer/Core/PathSensitive/CheckerContext.h +++ b/include/clang/StaticAnalyzer/Core/PathSensitive/CheckerContext.h
@@ -92,8 +92,8 @@ return Pred->getLocationContext(); } - const StackFrameContext *getCurrentStackFrame() const { - return getLocationContext()->getCurrentStackFrame(); + const StackFrameContext *getStackFrame() const { + return Pred->getStackFrame(); } BugReporter &getBugReporter() {
diff --git a/include/clang/StaticAnalyzer/Core/PathSensitive/ExplodedGraph.h b/include/clang/StaticAnalyzer/Core/PathSensitive/ExplodedGraph.h index 40969d3..1052d94 100644 --- a/include/clang/StaticAnalyzer/Core/PathSensitive/ExplodedGraph.h +++ b/include/clang/StaticAnalyzer/Core/PathSensitive/ExplodedGraph.h
@@ -133,6 +133,10 @@ return getLocation().getLocationContext(); } + const StackFrameContext *getStackFrame() const { + return getLocationContext()->getCurrentStackFrame(); + } + const Decl &getCodeDecl() const { return *getLocationContext()->getDecl(); } CFG &getCFG() const { return *getLocationContext()->getCFG(); }
diff --git a/lib/StaticAnalyzer/Checkers/DynamicTypePropagation.cpp b/lib/StaticAnalyzer/Checkers/DynamicTypePropagation.cpp index f22d740..fea5733 100644 --- a/lib/StaticAnalyzer/Checkers/DynamicTypePropagation.cpp +++ b/lib/StaticAnalyzer/Checkers/DynamicTypePropagation.cpp
@@ -125,7 +125,7 @@ RecE= RecE->IgnoreParenImpCasts(); if (const DeclRefExpr *DRE = dyn_cast<DeclRefExpr>(RecE)) { - const StackFrameContext *SFCtx = C.getCurrentStackFrame(); + const StackFrameContext *SFCtx = C.getStackFrame(); // Are we calling [self alloc]? If this is self, get the type of the // enclosing ObjC class. if (DRE->getDecl() == SFCtx->getSelfDecl()) {