From c059798756b4ffca77a209178dbcc1850a62b4a0 Mon Sep 17 00:00:00 2001 From: Ted Kremenek Date: Sat, 12 Feb 2011 18:50:03 +0000 Subject: Teach the IdempotentOperations checker to ignore property setters. llvm-svn: 125443 --- .../StaticAnalyzer/Checkers/IdempotentOperationChecker.cpp | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) (limited to 'clang/lib') diff --git a/clang/lib/StaticAnalyzer/Checkers/IdempotentOperationChecker.cpp b/clang/lib/StaticAnalyzer/Checkers/IdempotentOperationChecker.cpp index 633648ec6c2..7f64f8e2c40 100644 --- a/clang/lib/StaticAnalyzer/Checkers/IdempotentOperationChecker.cpp +++ b/clang/lib/StaticAnalyzer/Checkers/IdempotentOperationChecker.cpp @@ -357,8 +357,15 @@ void IdempotentOperationChecker::PostVisitBinaryOperator( const BinaryOperator *B) { // Add the ExplodedNode we just visited BinaryOperatorData &Data = hash[B]; - assert(isa(cast(C.getPredecessor() - ->getLocation()).getStmt())); + + const Stmt *predStmt + = cast(C.getPredecessor()->getLocation()).getStmt(); + + // Ignore implicit calls to setters. + if (isa(predStmt)) + return; + + assert(isa(predStmt)); Data.explodedNodes.Add(C.getPredecessor()); } -- cgit v1.2.3