brooksmoses added a comment. I have noticed two things when attempting to release LLVM with this revision internally at Google:
1. It's catching real bugs, all in constructors where someone wrote "member_ = member_" when they meant "member_ = member". 2. It's catching at least as many cases of tests where people are intentionally testing that self-assignment doesn't corrupt the data values. Thus, this seems valuable but problematic, and the problems mean that initially we're facing turning off -Wself-assign completely until this is resolved. That's definitely an issue, and at least means that this needs to be placed under its own -W option. And the real bugs it's finding seem to be very specific, and could be found by a more-focused warning. Further, I would note that most warnings of this sort have some canonical way of arranging the code to avoid the warning -- for instance, casting an unused variable to "void" to create a no-op expression and thereby avoid the "unused variable" warning. This warning doesn't seem to have one; "var = (var)", for instance, should IMO turn it off but doesn't. (To add to that, we have a source file that does a lot of "var = var" to silence unused-variable warnings, so this breaks that on top of not having its own source "workaround". Ick.) Repository: rC Clang https://reviews.llvm.org/D44883 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits