Quoting Kees Cook (2019-02-20 14:26:06) > On Fri, Feb 15, 2019 at 4:34 PM Stephen Boyd <sboyd@xxxxxxxxxx> wrote: > > Quoting Kees Cook (2019-02-12 10:57:05) > > > On Mon, Feb 11, 2019 at 11:41 PM Krzysztof Kozlowski <krzk@xxxxxxxxxx> wrote: > > > > > > > > It is just the GCC which has to be fixed not the code. You want to > > > > adjust the code for specific version of GCC and what if GCC changes > > > > its warning? For example GCC might require "fall through: "... or any > > > > other syntax. Another point - what about clang's syntax? > > > > > > -Wimplicit-fallthrough=3 is stricter and maps to -Wextra, hence its > > > choice. GCC's levels were chosen based on the existing linters, static > > > analyzers, etc. The patterns are unlikely to change (see the gcc > > > man-page). > > > > > > Clang doesn't recognize anything in C mode (hopefully this will be > > > fixed in the future[1]). > > > > > > As long as one of the compilers is able to check this, we'll avoid the > > > bugs associated with this mis-pattern. Gustavo's efforts here have > > > found kind of a lot of bugs, so I think it's worth a little churn to > > > add these (and make minor adjustments to existing comments). > > > > Just curious, what compilation phase does this check run in? Could we > > gain a macro like FALLTHRU or even lowercase 'fallthru' that expanded to > > whatever the compiler wants to see and then there would only be "one > > way" to do this? It would alleviate the above concerns, but maybe I'm > > rehashing something that's already been proposed and rejected. > > When this got discussed a while back, the thinking was that since > we're also dealing with static analyzers (e.g. Coverity) and IDEs that > literally parse comments in the code, it was most sensible (at least > for now, prior to there being a formal C "fall through" statement -- > there is for C++ but not yet for C), we'd stick to explicit comments. > In theory, we will be able to do a tree-wide change to add the C > statement once it exists. Ok, thanks for the background. Looks like the perf tool already introduced the #define __fallthrough that they use for this purpose. Maybe they're hoping that it will be formalized.