On 11/22/20 6:56 AM, Matthew Wilcox wrote:
On Sun, Nov 22, 2020 at 06:46:46AM -0800, Tom Rix wrote:
On 11/21/20 7:23 PM, Matthew Wilcox wrote:
On Sat, Nov 21, 2020 at 08:50:58AM -0800, trix@redhat.com wrote:
The fixer review is https://reviews.llvm.org/D91789
A run over allyesconfig for x86_64 finds 62 issues, 5 are false positives. The false positives are caused by macros passed to other macros and by some macro expansions that did not have an extra semicolon.
This cleans up about 1,000 of the current 10,000 -Wextra-semi-stmt warnings in linux-next.
Are any of them not false-positives? It's all very well to enable stricter warnings, but if they don't fix any bugs, they're just churn.
While enabling additional warnings may be a side effect of this effort
the primary goal is to set up a cleaning robot. After that a refactoring robot.
Why do we need such a thing? Again, it sounds like more churn. It's really annoying when I'm working on something important that gets derailed by pointless churn. Churn also makes it harder to backport patches to earlier kernels.
A refactoring example on moving to treewide, consistent use of a new api may help.
Consider
2efc459d06f1630001e3984854848a5647086232
sysfs: Add sysfs_emit and sysfs_emit_at to format sysfs output
A new api for printing in the sysfs. How do we use it treewide ?
Done manually, it would be a heroic effort requiring high level maintainers pushing and likely only get partially done.
If a refactoring programatic fixit is done and validated on a one subsystem, it can run on all the subsystems.
The effort is a couple of weeks to write and validate the fixer, hours to run over the tree.
It won't be perfect but will be better than doing it manually.
Tom