Szelethus added a comment.

Some tests would be appreciated, It really helps me understand whats going on.



================
Comment at: clang/include/clang/StaticAnalyzer/Checkers/Checkers.td:620-624
+                  "AggressiveEraseModeling",
+                  "Enables exploration of the past-the-end branch for the "
+                  "return value of the erase() method of containers.",
+                  "false",
+                  Released>
----------------
Hmm. The description isn't really user-friendly, imo, but the option doesn't 
sound too user-facing either. I don't think this is an option to be tinkered 
with. I think we should make this hidden.

Also, even for developers, I find this a bitconfusing at first. Do we not 
enable that by default? Why not? What do we have to gain/lose?


================
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);
+          }
----------------
Right, so the const is a state split. That doesn't sound like something regular 
users should fine-tune.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D77150



_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to