]> granicus.if.org Git - clang/commitdiff
Remove bogus assertion in IdempotentOperationsChecker.
authorTed Kremenek <kremenek@apple.com>
Tue, 15 Mar 2011 19:27:57 +0000 (19:27 +0000)
committerTed Kremenek <kremenek@apple.com>
Tue, 15 Mar 2011 19:27:57 +0000 (19:27 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127687 91177308-0d34-0410-b5e6-96231b3b80d8

lib/StaticAnalyzer/Checkers/IdempotentOperationChecker.cpp
test/Analysis/idempotent-operations.m

index 495c594bea318b1b55c63af0961c8d53a225d102..b2177c9a75d7475457d98684d34b0ef86815b1d9 100644 (file)
@@ -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());
 }
 
index 39d44c4978268a7261da66693713dfd627eba361..8f534940c9751c6198a99584bdfeffb57a3e77a0 100644 (file)
@@ -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
+}
+