]> granicus.if.org Git - clang/commitdiff
[-Wunreachable-code] generalize configuration value checking to all comparison operators.
authorTed Kremenek <kremenek@apple.com>
Wed, 5 Mar 2014 22:32:39 +0000 (22:32 +0000)
committerTed Kremenek <kremenek@apple.com>
Wed, 5 Mar 2014 22:32:39 +0000 (22:32 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@203016 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Analysis/ReachableCode.cpp
test/Sema/warn-unreachable.c

index 5baaa006777f02b4fa08860cfc2441d93a9e5b1e..f159642db2ffce5392a377d492305162e187e737 100644 (file)
@@ -382,7 +382,7 @@ static bool isConfigurationValue(const Stmt *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()));
     }
index b2448e987835a038f891f79c4c783ad7a1df7ed5..e8089aaa4f9cf4d653db8c81409badb13d8db0ce 100644 (file)
@@ -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
+}
+