r203016 - [-Wunreachable-code] generalize configuration value checking to all comparison operators.

Ted Kremenek kremenek at apple.com
Wed Mar 5 14:32:39 PST 2014


Author: kremenek
Date: Wed Mar  5 16:32:39 2014
New Revision: 203016

URL: http://llvm.org/viewvc/llvm-project?rev=203016&view=rev
Log:
[-Wunreachable-code] generalize configuration value checking to all comparison operators.

Modified:
    cfe/trunk/lib/Analysis/ReachableCode.cpp
    cfe/trunk/test/Sema/warn-unreachable.c

Modified: cfe/trunk/lib/Analysis/ReachableCode.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Analysis/ReachableCode.cpp?rev=203016&r1=203015&r2=203016&view=diff
==============================================================================
--- cfe/trunk/lib/Analysis/ReachableCode.cpp (original)
+++ cfe/trunk/lib/Analysis/ReachableCode.cpp Wed Mar  5 16:32:39 2014
@@ -382,7 +382,7 @@ static bool isConfigurationValue(const S
       return true;
     case Stmt::BinaryOperatorClass: {
       const BinaryOperator *B = cast<BinaryOperator>(S);
-      return (B->isLogicalOp() || B->isRelationalOp()) &&
+      return (B->isLogicalOp() || B->isComparisonOp()) &&
              (isConfigurationValue(B->getLHS()) ||
               isConfigurationValue(B->getRHS()));
     }

Modified: cfe/trunk/test/Sema/warn-unreachable.c
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Sema/warn-unreachable.c?rev=203016&r1=203015&r2=203016&view=diff
==============================================================================
--- cfe/trunk/test/Sema/warn-unreachable.c (original)
+++ cfe/trunk/test/Sema/warn-unreachable.c Wed Mar  5 16:32:39 2014
@@ -226,3 +226,11 @@ int test_config_constant(int x) {
       calledFun(); // expected-warning {{will never be executed}}
 }
 
+int sizeof_int() {
+  if (sizeof(long) == sizeof(int))
+    return 1; // no-warning
+  if (sizeof(long) != sizeof(int))
+    return 0; // no-warning
+  return 2; // no-warning
+}
+





More information about the cfe-commits mailing list