[PATCH] D77150: [Analyzer] New Option for ContainerModeling: AggressiveEraseModeling

Balogh, Ádám via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Fri Apr 3 00:30:09 PDT 2020


baloghadamsoftware marked an inline comment as done.
baloghadamsoftware added inline comments.


================
Comment at: clang/lib/StaticAnalyzer/Checkers/ContainerModeling.cpp:692-699
+          std::tie(StateEnd, StateNotEnd) = State->assume(*RetEnd);
+          if (StateEnd) {
+            C.addTransition(StateEnd);
+          }
+          if (StateNotEnd) {
+            C.addTransition(StateNotEnd);
+          }
----------------
Szelethus wrote:
> Szelethus wrote:
> > Right, so the const is a state split. That doesn't sound like something regular users should fine-tune.
> cost* :^)
We made something like this (upon suggestion from @NoQ) in `STLAlgorithmModeling`. There is an option which is disabled by default, but if the user enables it, then `std::find()` and the like will aggressively assume that the element may not be found thus they return their second iterator parameter. This option is very similar to that one.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D77150





More information about the cfe-commits mailing list