]> granicus.if.org Git - clang/commitdiff
Slightly simplify a constant expression check. No functional change.
authorRichard Smith <richard-llvm@metafoo.co.uk>
Sun, 16 Oct 2011 23:01:09 +0000 (23:01 +0000)
committerRichard Smith <richard-llvm@metafoo.co.uk>
Sun, 16 Oct 2011 23:01:09 +0000 (23:01 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@142167 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Sema/SemaExpr.cpp

index 0a0009e60215a24e1c65cd88321ef0aaa8611b18..83002d56956e82588fc7ce3db80b25ea60dd912c 100644 (file)
@@ -6802,10 +6802,10 @@ inline QualType Sema::CheckLogicalOperands( // C99 6.5.[13,14]
     // that isn't 0 or 1 (which indicate a potential logical operation that
     // happened to fold to true/false) then warn.
     // Parens on the RHS are ignored.
-    Expr::EvalResult Result;
-    if (RHS.get()->Evaluate(Result, Context) && !Result.HasSideEffects)
+    llvm::APSInt Result;
+    if (RHS.get()->EvaluateAsInt(Result, Context))
       if ((getLangOptions().Bool && !RHS.get()->getType()->isBooleanType()) ||
-          (Result.Val.getInt() != 0 && Result.Val.getInt() != 1)) {
+          (Result != 0 && Result != 1)) {
         Diag(Loc, diag::warn_logical_instead_of_bitwise)
           << RHS.get()->getSourceRange()
           << (Opc == BO_LAnd ? "&&" : "||");