summaryrefslogtreecommitdiffstats
path: root/clang
diff options
context:
space:
mode:
authorTed Kremenek <kremenek@apple.com>2011-03-15 19:27:57 +0000
committerTed Kremenek <kremenek@apple.com>2011-03-15 19:27:57 +0000
commitcdb2ae587a469387f845b62c4397d7eed986442c (patch)
treebfb08809e4b8d498dff8532879fa42d250a06809 /clang
parent1a37ae40e1c99d41b957e5bbae7e7e2f5ba049ab (diff)
downloadbcm5719-llvm-cdb2ae587a469387f845b62c4397d7eed986442c.tar.gz
bcm5719-llvm-cdb2ae587a469387f845b62c4397d7eed986442c.zip
Remove bogus assertion in IdempotentOperationsChecker.
llvm-svn: 127687
Diffstat (limited to 'clang')
-rw-r--r--clang/lib/StaticAnalyzer/Checkers/IdempotentOperationChecker.cpp5
-rw-r--r--clang/test/Analysis/idempotent-operations.m12
2 files changed, 14 insertions, 3 deletions
diff --git a/clang/lib/StaticAnalyzer/Checkers/IdempotentOperationChecker.cpp b/clang/lib/StaticAnalyzer/Checkers/IdempotentOperationChecker.cpp
index 495c594bea3..b2177c9a75d 100644
--- a/clang/lib/StaticAnalyzer/Checkers/IdempotentOperationChecker.cpp
+++ b/clang/lib/StaticAnalyzer/Checkers/IdempotentOperationChecker.cpp
@@ -336,10 +336,9 @@ void IdempotentOperationChecker::checkPostStmt(const BinaryOperator *B,
= cast<StmtPoint>(C.getPredecessor()->getLocation()).getStmt();
// Ignore implicit calls to setters.
- if (isa<ObjCPropertyRefExpr>(predStmt))
+ if (!isa<BinaryOperator>(predStmt))
return;
-
- assert(isa<BinaryOperator>(predStmt));
+
Data.explodedNodes.Add(C.getPredecessor());
}
diff --git a/clang/test/Analysis/idempotent-operations.m b/clang/test/Analysis/idempotent-operations.m
index 39d44c49782..8f534940c97 100644
--- a/clang/test/Analysis/idempotent-operations.m
+++ b/clang/test/Analysis/idempotent-operations.m
@@ -40,3 +40,15 @@ void pr9116(NSObject *placeholder) {
int x = placeholder.media.locked = placeholder ? 1 : 0;
}
+// <rdar://problem/9130239>: Test that calling property setters doesn't
+// trigger an assertion failure when the object is nil.
+@interface RDar9130239
+@property (assign) id delegate;
+@end
+
+void test_RDar9130239(RDar9130239 *x) {
+ if (x)
+ return;
+ x.delegate = x; // no-warning
+}
+
OpenPOWER on IntegriCloud