[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