On Wed, 15 Dec 2021 21:04:30 +0000 Ferruh Yigit <ferruh.yi...@intel.com> wrote:
> On 12/15/2021 7:20 PM, Stephen Hemminger wrote: > > On Wed, 15 Dec 2021 18:48:59 +0000 > > Ferruh Yigit <ferruh.yi...@intel.com> wrote: > > > >> Linux is using '-Wimplicit-fallthrough=5' compiler option, which doesn't > >> take any fall through comments into account but only uses compiler > >> 'fallthrough' attribute to document fall through action is intended. > >> > >> "falls through" comment was used in the code which is causing a build > >> error now, this patch converts comment to the 'fallthrough' macro > >> defined in the Linux. > >> > >> To cover the case where Linux version doesn't have the macro, defined it > >> in the compatibility header too. > >> > >> Signed-off-by: Ferruh Yigit <ferruh.yi...@intel.com> > > > > Are you sure that fixes it? because the comment in the macro is typically > > not visible in a macro expansion. > > Since in most case Linux uses gcc why not use the gcc attribute > > > > __attribute__ ((fallthrough)) > > Hi Stephen, > > That is the intention already. > > Patch is using the Linux kernel defined macro: > #if __has_attribute(__fallthrough__) > # define fallthrough __attribute__((__fallthrough__)) > #else > # define fallthrough do {} while (0) /* fallthrough */ > #endif > > And it builds fine without the macro in the 'compat.h'. > > > I added the define in the 'compat.h' for old kernels which doesn't > define the macro. For that case I expect default '-Wimplicit-fallthrough' > option is used which accepts 'fallthrough;' as a regex hit. Your right, on older kernels it really is just a dummy statement. The regex can't work, you can take (or leave the comment) it has no effect because implicit-fallthrough won't see it in a macro.