[clang] 03693d5 - Revert "[analyzer] Simplify SVal for simple NonLoc->Loc casts (#66463)"

Balazs Benics via cfe-commits cfe-commits at lists.llvm.org
Fri Sep 15 04:18:48 PDT 2023


Author: Balazs Benics
Date: 2023-09-15T13:18:34+02:00
New Revision: 03693d5b40f187921ead5a502fa3cf72ce30fea4

URL: https://github.com/llvm/llvm-project/commit/03693d5b40f187921ead5a502fa3cf72ce30fea4
DIFF: https://github.com/llvm/llvm-project/commit/03693d5b40f187921ead5a502fa3cf72ce30fea4.diff

LOG: Revert "[analyzer] Simplify SVal for simple NonLoc->Loc casts (#66463)"

This reverts commit 3ebf3dd30da219f9f9aee12f42d45d18d55e7580.

I thought "Mergeing" will wait and confirm if the checks pass, and only
merge it if they succeed. Apparently, it's not the case here xD

The test is just broken in x86. See:
https://lab.llvm.org/buildbot/#/builders/109/builds/73686

Added: 
    

Modified: 
    clang/lib/StaticAnalyzer/Core/ExprEngineC.cpp
    clang/test/Analysis/symbol-simplification-nonloc-loc.cpp

Removed: 
    


################################################################################
diff  --git a/clang/lib/StaticAnalyzer/Core/ExprEngineC.cpp b/clang/lib/StaticAnalyzer/Core/ExprEngineC.cpp
index 7e431f7e598c4cb..2a47116db55a1ad 100644
--- a/clang/lib/StaticAnalyzer/Core/ExprEngineC.cpp
+++ b/clang/lib/StaticAnalyzer/Core/ExprEngineC.cpp
@@ -264,8 +264,7 @@ ProgramStateRef ExprEngine::handleLValueBitCast(
   }
   // Delegate to SValBuilder to process.
   SVal OrigV = state->getSVal(Ex, LCtx);
-  SVal SimplifiedOrigV = svalBuilder.simplifySVal(state, OrigV);
-  SVal V = svalBuilder.evalCast(SimplifiedOrigV, T, ExTy);
+  SVal V = svalBuilder.evalCast(OrigV, T, ExTy);
   // Negate the result if we're treating the boolean as a signed i1
   if (CastE->getCastKind() == CK_BooleanToSignedIntegral && V.isValid())
     V = svalBuilder.evalMinus(V.castAs<NonLoc>());

diff  --git a/clang/test/Analysis/symbol-simplification-nonloc-loc.cpp b/clang/test/Analysis/symbol-simplification-nonloc-loc.cpp
index 619fda824cb70b5..485f68d9a5acfba 100644
--- a/clang/test/Analysis/symbol-simplification-nonloc-loc.cpp
+++ b/clang/test/Analysis/symbol-simplification-nonloc-loc.cpp
@@ -1,8 +1,6 @@
 // RUN: %clang_analyze_cc1 -analyzer-checker=core %s \
 // RUN:    -triple x86_64-pc-linux-gnu -verify
 
-void clang_analyzer_eval(int);
-
 #define BINOP(OP) [](auto x, auto y) { return x OP y; }
 
 template <typename BinOp>
@@ -75,27 +73,3 @@ void zoo1backwards() {
   *(0 + p) = nullptr;  // warn
   **(0 + p) = 'a';     // no-warning: this should be unreachable
 }
-
-void test_simplified_before_cast_add(long t1) {
-  long long t2 = t1 + 3;
-  if (!t2) {
-    int *p = (int *) t2;
-    clang_analyzer_eval(p == 0); // expected-warning{{TRUE}}
-  }
-}
-
-void test_simplified_before_cast_sub(long t1) {
-  long long t2 = t1 - 3;
-  if (!t2) {
-    int *p = (int *) t2;
-    clang_analyzer_eval(p == 0); // expected-warning{{TRUE}}
-  }
-}
-
-void test_simplified_before_cast_mul(long t1) {
-  long long t2 = t1 * 3;
-  if (!t2) {
-    int *p = (int *) t2;
-    clang_analyzer_eval(p == 0); // expected-warning{{TRUE}}
-  }
-}


        


More information about the cfe-commits mailing list