aaron.ballman accepted this revision. aaron.ballman added a comment. In D70052#1750664 <https://reviews.llvm.org/D70052#1750664>, @gbencze wrote:
> In D70052#1749730 <https://reviews.llvm.org/D70052#1749730>, @JonasToth wrote: > > > There is a `ExprMutAnalyzer` that is able to find mutation of expressions > > in general (even though it is kinda experimental still). Maybe that should > > be utilized somehow? I think the current implementation does not cover when > > the address is taken and mutation happens through pointers/references in > > free standing functions, does it? > > > > On the other hand it makes the check more complicated, slower. Additionally > > the most cases are catched with this version, i guess. > > > You're right, the current version does not cover mutations through pointers > and references. I'm not sure how common these would be, but `ExprMutAnalyzer` > seems like a great option if we wanted to add support for those cases as well. It also doesn't cover mutations through function calls. e.g., void some_func(S &); // Could mutate the passed object struct S { int i, j; S(S &s) : i(s.i), j(s.j) { some_func(s); } }; However, I think the clang-tidy check will suffice for catching a significant percentage of mutating copy bugs so it seems reasonable to keep this rather than insist on a static analyzer check. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D70052/new/ https://reviews.llvm.org/D70052 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits