From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752899AbdBJOms (ORCPT ); Fri, 10 Feb 2017 09:42:48 -0500 Received: from mail.kernel.org ([198.145.29.136]:53428 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751577AbdBJOmr (ORCPT ); Fri, 10 Feb 2017 09:42:47 -0500 Date: Fri, 10 Feb 2017 11:42:38 -0300 From: Arnaldo Carvalho de Melo To: Joe Perches Cc: Ingo Molnar , linux-kernel@vger.kernel.org, Arnaldo Carvalho de Melo , Adrian Hunter , David Ahern , Jiri Olsa , Namhyung Kim , Wang Nan , William Cohen Subject: Re: [PATCH 24/32] tools include: Add a __fallthrough statement Message-ID: <20170210144238.GC15066@kernel.org> References: <20170210013940.9998-1-acme@kernel.org> <20170210013940.9998-25-acme@kernel.org> <1486695726.2192.1.camel@perches.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1486695726.2192.1.camel@perches.com> X-Url: http://acmel.wordpress.com User-Agent: Mutt/1.7.1 (2016-10-04) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Em Thu, Feb 09, 2017 at 07:02:06PM -0800, Joe Perches escreveu: > On Thu, 2017-02-09 at 22:39 -0300, Arnaldo Carvalho de Melo wrote: > > From: Arnaldo Carvalho de Melo > > > > For cases where implicit fall through case labels are intended, > > to let us inform that to gcc >= 7: > > I believe this should be added to compiler_gcc.h We still don't have it in tools/include/linux, but yeah, its a good idea to have the equivalent of include/linux/compiler-gcc.h. Then, at some point, the kernel can grab the definition from tools, i.e. when people start trying to build the kernel _and_ this specific warning is enabled there, as it is in tools/. - Arnaldo > > diff --git a/tools/include/linux/compiler.h b/tools/include/linux/compiler.h > [] > > @@ -126,4 +126,13 @@ static __always_inline void __write_once_size(volatile void *p, void *res, int s > > #define WRITE_ONCE(x, val) \ > > ({ union { typeof(x) __val; char __c[1]; } __u = { .__val = (val) }; __write_once_size(&(x), __u.__c, sizeof(x)); __u.__val; }) > > > > + > > +#ifndef __fallthrough > > +# if defined(__GNUC__) && __GNUC__ >= 7 > > +# define __fallthrough __attribute__ ((fallthrough)) > > +# else > > +# define __fallthrough > > +# endif > > +#endif > > + > > #endif /* _TOOLS_LINUX_COMPILER_H */