aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnna Zaks <ganna@apple.com>2012-05-03 02:13:46 +0000
committerAnna Zaks <ganna@apple.com>2012-05-03 02:13:46 +0000
commit31595e22b7e0d21b0b7c4c4fb196e97d3edc2a08 (patch)
treee6941bf23682e24a10b50129794c1ea71b05ef9b
parent92c6c90e9099b7e27073056b154b2d5e7d5449b1 (diff)
[analyzer] Revert the functional part of r155944.
The change resulted in multiple issues on the buildbot, so it's not ready for prime time. Only enable history tracking for tainted data(which is experimental) for now. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@156049 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--lib/StaticAnalyzer/Core/SValBuilder.cpp3
-rw-r--r--test/Analysis/malloc.c7
2 files changed, 3 insertions, 7 deletions
diff --git a/lib/StaticAnalyzer/Core/SValBuilder.cpp b/lib/StaticAnalyzer/Core/SValBuilder.cpp
index 4c021a4a26..a61cbe8761 100644
--- a/lib/StaticAnalyzer/Core/SValBuilder.cpp
+++ b/lib/StaticAnalyzer/Core/SValBuilder.cpp
@@ -199,6 +199,9 @@ SVal SValBuilder::makeSymExprValNN(ProgramStateRef State,
BinaryOperator::Opcode Op,
NonLoc LHS, NonLoc RHS,
QualType ResultTy) {
+ if (!State->isTainted(RHS) && !State->isTainted(LHS))
+ return UnknownVal();
+
const SymExpr *symLHS = LHS.getAsSymExpr();
const SymExpr *symRHS = RHS.getAsSymExpr();
diff --git a/test/Analysis/malloc.c b/test/Analysis/malloc.c
index 9c09051c31..27e34e9039 100644
--- a/test/Analysis/malloc.c
+++ b/test/Analysis/malloc.c
@@ -776,13 +776,6 @@ int rdar11269741(struct rdar11269741_b_t o)
return p->n.m; // expected-warning {{leak}}
}
-// Pointer arithmetic, returning an ElementRegion.
-void *radar11329382(unsigned bl) {
- void *ptr = malloc (16);
- ptr = ptr + (2 - bl);
- return ptr; // no warning
-}
-
void __assert_rtn(const char *, const char *, int, const char *) __attribute__((__noreturn__));
int strcmp(const char *, const char *);
char *a (void);