[clang] [analyzer] Simplify SVal for simple NonLoc->Loc casts (PR #66463)
Ding Fei via cfe-commits
cfe-commits at lists.llvm.org
Fri Sep 15 03:49:15 PDT 2023
================
@@ -0,0 +1,31 @@
+// RUN: %clang_analyze_cc1 %s \
+// RUN: -analyzer-checker=core \
+// RUN: -analyzer-checker=debug.ExprInspection \
+// RUN: -analyzer-config eagerly-assume=false \
+// RUN: -verify
+
+void clang_analyzer_eval(int);
+
+void test_simplified_before_cast_add(long 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 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 long t1) {
+ long long t2 = t1 * 3;
+ if (!t2) {
+ int *p = (int *) t2;
+ clang_analyzer_eval(p == 0); // expected-warning{{TRUE}}
+ }
+}
----------------
danix800 wrote:
Moved this into `symbol-simplification-nonloc-loc.cpp`.
https://github.com/llvm/llvm-project/pull/66463
More information about the cfe-commits
mailing list