baloghadamsoftware marked 6 inline comments as done.
baloghadamsoftware added inline comments.


================
Comment at: clang/lib/StaticAnalyzer/Checkers/DebugIteratorModeling.cpp:91-111
   SVal V = C.getSVal(CE->getArg(0));
   const auto *Pos = getIteratorPosition(State, V);
+  SVal Field = Default;
+
   if (Pos) {
-    State = State->BindExpr(CE, C.getLocationContext(), get(Pos));
-  } else {
-    State = State->BindExpr(CE, C.getLocationContext(), Default);
+    Field = get(Pos);
   }
----------------
Szelethus wrote:
> Now that we have multiple `SVal`s around, can we rename `V`? Also, I would 
> appreciate some comments. As I understand it, `ExprInspectionChecker` now 
> marks the arguments as interesting, so if we write this:
> ```lang=cpp
> clang_analyzer_express(clang_analyzer_iterator_position(i2));
> ```
> `clang_analyzer_iterator_position(i2)` will be interesting, and this function 
> propagates this interestingness to `i2`, correct?
Yes.


================
Comment at: clang/test/Analysis/iterator-modelling.cpp:169
 
   clang_analyzer_eval(clang_analyzer_iterator_container(i2) == &v); // 
expected-warning{{TRUE}}
                                                                     // 
expected-note@-1{{TRUE}}
----------------
Szelethus wrote:
> Interestingness won't be propagated here because 
> `clang_analyzer_iterator_container(i2) == &v` is interesting, not 
> `clang_analyzer_iterator_container(i2)`, correct?
Currently only `clang_analyzer_express()` marks its argument as interesting. 
This could be extended in the future, however the argument of 
`clang_analyzer_eval()` is usually the result of the comparison, not the 
symbolic comparison itself so the sides of the comparison are not reachable at 
that point.


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

https://reviews.llvm.org/D75677



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

Reply via email to