[PATCH] D106823: [analyzer][solver] Iterate to a fixpoint during symbol simplification with constants

Gabor Marton via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Tue Nov 2 08:26:09 PDT 2021


martong added inline comments.


================
Comment at: clang/lib/StaticAnalyzer/Core/RangeConstraintManager.cpp:1699-1701
+  ProgramStateRef OldState;
+  do {
+    OldState = State;
----------------
steakhal wrote:
> IMO we should have a `llvm::Statistic` here, tracking the maximum iteration count to reach the fixed point and an average iteration count.
We can't do this once we reach the fixpoint with recursive `assume` calls.


================
Comment at: clang/lib/StaticAnalyzer/Core/RangeConstraintManager.cpp:1732
+      if (!State)
+        return false;
+    }
----------------
steakhal wrote:
> I'd love to see a coverage report of the tests you add with this patch.
Ok, I am going to check the coverage and add the missing cases.


================
Comment at: clang/test/Analysis/expr-inspection-printState-eq-classes.c:11
     return;
-  if (b != 0)
+  if (a != c)
     return;
----------------
steakhal wrote:
> Why do you need to change this?
We don't need it, I removed.


================
Comment at: clang/test/Analysis/symbol-simplification-fixpoint-iteration-unreachable-code.cpp:16
+    return;
+  if (c + b != 0)
+    return;
----------------
steakhal wrote:
> Is it important to have this instead of `b + c`?
No, I changed it to `b+c` as you suggested.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D106823/new/

https://reviews.llvm.org/D106823



More information about the cfe-commits mailing list