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