[cfe-commits] r112310 - /cfe/trunk/lib/Checker/UnreachableCodeChecker.cpp

Tom Care tcare at apple.com
Fri Aug 27 15:37:31 PDT 2010


Author: tcare
Date: Fri Aug 27 17:37:31 2010
New Revision: 112310

URL: http://llvm.org/viewvc/llvm-project?rev=112310&view=rev
Log:
Remove an assertion in UnreachableCodeChecker that can be triggered by bugs in other checkers.

Modified:
    cfe/trunk/lib/Checker/UnreachableCodeChecker.cpp

Modified: cfe/trunk/lib/Checker/UnreachableCodeChecker.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Checker/UnreachableCodeChecker.cpp?rev=112310&r1=112309&r2=112310&view=diff
==============================================================================
--- cfe/trunk/lib/Checker/UnreachableCodeChecker.cpp (original)
+++ cfe/trunk/lib/Checker/UnreachableCodeChecker.cpp Fri Aug 27 17:37:31 2010
@@ -188,8 +188,11 @@
 // There will never be more than one predecessor.
 bool UnreachableCodeChecker::isInvalidPath(const CFGBlock *CB,
                                            const ParentMap &PM) {
-  // Assert this CFGBlock only has one or zero predecessors
-  assert(CB->pred_size() == 0 || CB->pred_size() == 1);
+  // We only expect a predecessor size of 0 or 1. If it is >1, then an external
+  // condition has broken our assumption (for example, a sink being placed by
+  // another check). In these cases, we choose not to report.
+  if (CB->pred_size() > 1)
+    return true;
 
   // If there are no predecessors, then this block is trivially unreachable
   if (CB->pred_size() == 0)





More information about the cfe-commits mailing list