steakhal abandoned this revision. steakhal added a comment. In D159107#4627903 <https://reviews.llvm.org/D159107#4627903>, @donat.nagy wrote:
> Good direction of development, this will be useful for providing better bug > reports (in addition to ensuring correct behavior some situations). > Note that it's also possible to dereference pointers with the operator `->`, > which is represented by `MemberExpr`s in the AST; we should probably handle > that as if it was a `UO_Deref`. +1, +1 > There is also a small corner case that for an array `some_type arr[N]` it's > well-defined to form the past-the-end pointer as `&arr[N]` (instead of `arr + > N`) -- while any other use of `arr[N]` is undefined behavior. If this occurs > in practice, then we'll probably need some additional logic to handle it. > (Note that the `check::Location` implementation dodged this question, because > it didn't report anything when the program formed `&arr[N]`, but later > created a bug report when this pointer value was dereferenced.) Ah, this disappoints me. You are right. This delayed mechanism definitely needs a more careful approach. Given these concerns and the quality of the diagnostics, I don't think it's something easy to fix. I'll abandon this for now, to focus on the low-hanging patches to upstream. Thanks for the thoughtful review! @donat.nagy ================ Comment at: clang/lib/StaticAnalyzer/Checkers/ArrayBoundCheckerV2.cpp:34 +class ArrayBoundCheckerV2 + : public Checker<check::Bind, check::PostStmt<ArraySubscriptExpr>, + check::PostStmt<UnaryOperator>> { ---------------- donat.nagy wrote: > Which testcase would break without the `check::Bind` callback? (Not action > needed, I'm just curious.) Good question. TO my surprise, no tests would be broken if we removed this callback. Nice catch. I thought it would break the new test added in D159106, but it would still pass. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D159107/new/ https://reviews.llvm.org/D159107 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits