rsmith added a comment. When this change returns, I'd like to see a different implementation strategy. Running a recursive AST visitation after the fact is generally not the right way to look for this kind of issue; adding an extra pass to speculatively hunt for each kind of warning we might want to issue is too expensive. Instead, I think we should do something simpler and cheaper, such as tracking, for each variable in scope, the number of potentially-evaluated non-assignment references to that variable. For example:
- in `DoMarkVarDeclReferenced`, increment a per-variable counter if the variable is a local and the reference is an odr-use - in `IgnoredValueConversions`, if we're discarding a potentially-evaluated assignment or increment expression acting on a local variable, decrement the counter for that variable - in `ActOnPopScope`, or perhaps in `DiagnoseUnusedDecl`, when we're diagnosing unused variables, also diagnose set-but-not-used variables (where the variable is marked as used but the counter is equal to zero) Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D100581/new/ https://reviews.llvm.org/D100581 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits