[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
Fri Oct 1 07:01:05 PDT 2021


martong added inline comments.


================
Comment at: clang/lib/StaticAnalyzer/Core/RangeConstraintManager.cpp:2108
+LLVM_NODISCARD ProgramStateRef
+EquivalenceClass::removeMember(ProgramStateRef State, const SymbolRef Old) {
+
----------------
Remove `const `


================
Comment at: clang/lib/StaticAnalyzer/Core/RangeConstraintManager.cpp:2123
+  ClsMembers = F.remove(ClsMembers, Old);
+  assert(!ClsMembers.isEmpty() &&
+         "Class should have had at least two members before member removal");
----------------
Comment that this is a precondition.


================
Comment at: clang/lib/StaticAnalyzer/Core/RangeConstraintManager.cpp:2156
+      assert(find(State, MemberSym) == find(State, SimplifiedMemberSym));
+      // Remove the old and more complex symbol.
+      State = find(State, MemberSym).removeMember(State, MemberSym);
----------------
TODO add Performance and complexity essay here.


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