baloghadamsoftware accepted this revision.
baloghadamsoftware added a comment.
This revision is now accepted and ready to land.

Looks good, aside from the few naming issues I mentioned. Please try it on 
//LLVM/Clang// before committing it to avoid unexpected crashes.



================
Comment at: clang/lib/StaticAnalyzer/Checkers/IteratorModeling.cpp:112
                               OverloadedOperatorKind Op, const SVal &RetVal,
-                              const SVal &LHS, const SVal &RHS) const;
+                              const SVal &Iterator, const SVal &Offset) const;
   void handlePtrIncrOrDecr(CheckerContext &C, const Expr *Iterator,
----------------
In my subsequent patches I began to use the name `Amount` instead of `Offset` 
to not confuse with `IteratorPosition::Offset`.


================
Comment at: clang/lib/StaticAnalyzer/Checkers/IteratorModeling.cpp:281
+    const Expr *const &IterExpr = IsIterOnLHS ? LHS : RHS;
+    const Expr *const &OtherExpr = IsIterOnLHS ? RHS : LHS;
+
----------------
`AmountExpr`.


================
Comment at: clang/lib/StaticAnalyzer/Checkers/IteratorModeling.cpp:385
+        const QualType FstType = FstExpr->getType();
+        const QualType SndType = SndExpr->getType();
+
----------------
`Expr1`, `Expr2`, `Type1`, `Type2` or something similar. `Fst` is to be 
confused with //Fast// and `Snd` with //Sound//. Or spell out `First` and 
`Second`.


================
Comment at: clang/lib/StaticAnalyzer/Checkers/IteratorModeling.cpp:400
+                 "Either first or second argument should have structure "
+                 "or class type!");
           handleRandomIncrOrDecr(C, OrigExpr, Op, Call.getReturnValue(),
----------------
This is generally true in //C++// that overloaded operators must either be 
class member or must have at least one class argument. Do we have to assert it 
in this particular checker?


================
Comment at: clang/test/Analysis/iterator-modeling.cpp:152
 
-void plus(const std::vector<int> &v) {
+void lhs_plus(const std::vector<int> &v) {
   auto i1 = v.begin();
----------------
`plus_lhs`, `plus_rhs` to begin with the name of the operation.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D83190



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

Reply via email to