On Wed, Nov 25, 2020 at 1:33 PM Finn Thain fthain@telegraphics.com.au wrote:
Or do you think that a codebase can somehow satisfy multiple checkers and their divergent interpretations of the language spec?
Have we found any cases yet that are divergent? I don't think so. It sounds to me like GCC's cases it warns for is a subset of Clang's. Having additional coverage with Clang then should ensure coverage for both.
This is not a shiny new warning; it's already on for GCC and has existed in both compilers for multiple releases.
Perhaps you're referring to the compiler feature that lead to the ill-fated, tree-wide /* fallthrough */ patch series.
When the ink dries on the C23 language spec and the implementations figure out how to interpret it then sure, enforce the warning for new code -- the cost/benefit analysis is straight forward. However, the case for patching existing mature code is another story.
I don't think we need to wait for the ink to dry on the C23 language spec to understand that implicit fallthrough is an obvious defect of the C language. While the kernel is a mature codebase, it's not immune to bugs. And its maturity has yet to slow its rapid pace of development.