[clang] [analyzer] Correct crash in Z3 wrapper (PR #158276)

DonĂ¡t Nagy via cfe-commits cfe-commits at lists.llvm.org
Fri Sep 12 05:59:03 PDT 2025


================
@@ -13,3 +13,29 @@ int negate(int x, int y) {
     return 0;
   return 1;
 }
+
+void c();
+void case004(int *a, int *b) {
+  void *e;
+  b != a;
+  c(e); // expected-warning{{1st function call argument is an uninitialized value}}
+}
+
+void z3crash(int a, int b) {
+  b = a || b;
+  (-b == a) / a; // expected-warning{{expression result unused}}
----------------
NagyDonat wrote:

Note that here `-b == a` is evaluated as `(-b) == a` (because negation has higher precedence than equality), while your commit changes the handling of expressions like `- (x == y)` where a comparison operator is a child of an unary operator.

https://github.com/llvm/llvm-project/pull/158276


More information about the cfe-commits mailing list