JonasToth added a comment. For reference, here is the output for llvm/lib. F6896569: const_correctness_2_llvm_lib_references <https://reviews.llvm.org/F6896569>
F6896567: const_correctness_2_llvm_lib_values_pointers <https://reviews.llvm.org/F6896567> Things i noticed: - lambdas are warned as potential const, i think they should be excluded for the values - for-loops that initialize two values (usually the start and end-iterator) are correctly diagnosed, but the diagnosis might be misleading. Especially because there is no way to have a const-iterator initialized together with the changing iterator. `for (auto begin = vec.begin(), end = vec.end(); ...)` - there seems to be a false positive with array-to-pointer decay. ExprMutAnalyzer does think of it, but maybe there is a bug in it. - pointer diagnostics don't seem to worker (pointer-as-value). The test-case does work, This must be analyzed further - there was a bug in the `check` method, where `AnalyzeValues == 0` did imply no analysis is done. Given the volume of diagnostics for the value-case i did not investigate many cases manually. I think it makes sense to strive for code-transformation and check if the code still compiles. References on the other hand seem to function correctly, and most references are single-var-decls, too. That means code transformation is very simple and therefor an easy target to check functionality. References and values are in general treated the same, so it might give a hint about the performance for values. Repository: rCTE Clang Tools Extra https://reviews.llvm.org/D45444 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits