aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnna Zaks <ganna@apple.com>2012-08-30 22:42:41 +0000
committerAnna Zaks <ganna@apple.com>2012-08-30 22:42:41 +0000
commitdc601f4a9f69315521abddbca04d4652deee5fdb (patch)
tree39c1fcb873f95e2675f501e8b6b616a8004bf67f
parent482466b76174738def05d4ae3c3240bc83b57426 (diff)
[analyzer] Fixup for r162935 as per Jordan's review.
Thanks for catching this! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162949 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--include/clang/StaticAnalyzer/Core/PathSensitive/CheckerContext.h2
-rw-r--r--lib/StaticAnalyzer/Checkers/BasicObjCFoundationChecks.cpp6
-rw-r--r--test/Analysis/inlining/assume-super-init-does-not-return-nil.m2
3 files changed, 5 insertions, 5 deletions
diff --git a/include/clang/StaticAnalyzer/Core/PathSensitive/CheckerContext.h b/include/clang/StaticAnalyzer/Core/PathSensitive/CheckerContext.h
index 9ba2f8c21a..953527da34 100644
--- a/include/clang/StaticAnalyzer/Core/PathSensitive/CheckerContext.h
+++ b/include/clang/StaticAnalyzer/Core/PathSensitive/CheckerContext.h
@@ -102,7 +102,7 @@ public:
/// Returns true if the predecessor is within an inlined function/method.
bool isWithinInlined() {
- return (getStackFrame() != 0);
+ return (getStackFrame()->getParent() != 0);
}
BugReporter &getBugReporter() {
diff --git a/lib/StaticAnalyzer/Checkers/BasicObjCFoundationChecks.cpp b/lib/StaticAnalyzer/Checkers/BasicObjCFoundationChecks.cpp
index e5fbb832a9..cfb35a4e5f 100644
--- a/lib/StaticAnalyzer/Checkers/BasicObjCFoundationChecks.cpp
+++ b/lib/StaticAnalyzer/Checkers/BasicObjCFoundationChecks.cpp
@@ -736,9 +736,9 @@ ProgramStateRef assumeExprIsNonNull(const Expr *NonNullExpr,
ProgramStateRef State,
CheckerContext &C) {
SVal Val = State->getSVal(NonNullExpr, C.getLocationContext());
- if (!isa<DefinedOrUnknownSVal>(Val))
- return State;
- return State->assume(cast<DefinedOrUnknownSVal>(Val), true);
+ if (DefinedOrUnknownSVal *DV = dyn_cast<DefinedOrUnknownSVal>(&Val))
+ return State->assume(cast<DefinedOrUnknownSVal>(*DV), true);
+ return State;
}
void ObjCNonNilReturnValueChecker::checkPostObjCMessage(const ObjCMethodCall &M,
diff --git a/test/Analysis/inlining/assume-super-init-does-not-return-nil.m b/test/Analysis/inlining/assume-super-init-does-not-return-nil.m
index d17835e1fa..cda1e87918 100644
--- a/test/Analysis/inlining/assume-super-init-does-not-return-nil.m
+++ b/test/Analysis/inlining/assume-super-init-does-not-return-nil.m
@@ -24,7 +24,7 @@ typedef signed char BOOL;
@implementation Cell
- (id) init {
if ((self = [super init])) {
- ;
+ return self;
}
// Test that this is being analyzed.
int m;