Message ID | 20200418184111.13401-2-rdunlap@infradead.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | fix -Wempty-body build warnings | expand |
On Sat, 2020-04-18 at 11:41 -0700, Randy Dunlap wrote: > Add the do_empty() macro to silence gcc warnings about an empty body > following an "if" statement when -Wextra is used. > > However, for debug printk calls that are being disabled, use either > no_printk() or pr_debug() [and optionally dynamic printk debugging] > instead. [] > +#define do_empty() do { } while (0) If this is really useful (I think the warning is somewhat silly) bikeshed: I think do_nothing() is more descriptive
On 4/18/20 11:44 AM, Joe Perches wrote: > On Sat, 2020-04-18 at 11:41 -0700, Randy Dunlap wrote: >> Add the do_empty() macro to silence gcc warnings about an empty body >> following an "if" statement when -Wextra is used. >> >> However, for debug printk calls that are being disabled, use either >> no_printk() or pr_debug() [and optionally dynamic printk debugging] >> instead. > [] >> +#define do_empty() do { } while (0) > > If this is really useful > (I think the warning is somewhat silly) > > bikeshed: > > I think do_nothing() is more descriptive Yes, I do too, as I more or less mentioned in the cover letter.
On 4/18/20 11:41 AM, Randy Dunlap wrote: > --- linux-next-20200327.orig/include/linux/kernel.h > +++ linux-next-20200327/include/linux/kernel.h > @@ -40,6 +40,14 @@ > #define READ 0 > #define WRITE 1 > > +/* > + * When using -Wextra, an "if" statement followed by an empty block > + * (containing only a ';'), produces a warning from gcc: > + * warning: suggest braces around empty body in an ‘if’ statement [-Wempty-body] > + * Replace the empty body with do_empty() to silence this warning. > + */ > +#define do_empty() do { } while (0) > + > /** > * ARRAY_SIZE - get the number of elements in array @arr > * @arr: array to be sized I'm less than enthusiast about introducing a new macro to suppress "empty body" warnings. Anyone who encounters code in which this macro is used will have to look up the definition of this macro to learn what it does. Has it been considered to suppress empty body warnings by changing the empty bodies from ";" into "{}"? Thanks, Bart.
On 4/18/20 3:20 PM, Bart Van Assche wrote: > On 4/18/20 11:41 AM, Randy Dunlap wrote: >> --- linux-next-20200327.orig/include/linux/kernel.h >> +++ linux-next-20200327/include/linux/kernel.h >> @@ -40,6 +40,14 @@ >> #define READ 0 >> #define WRITE 1 >> +/* >> + * When using -Wextra, an "if" statement followed by an empty block >> + * (containing only a ';'), produces a warning from gcc: >> + * warning: suggest braces around empty body in an ‘if’ statement [-Wempty-body] >> + * Replace the empty body with do_empty() to silence this warning. >> + */ >> +#define do_empty() do { } while (0) >> + >> /** >> * ARRAY_SIZE - get the number of elements in array @arr >> * @arr: array to be sized > > I'm less than enthusiast about introducing a new macro to suppress "empty body" warnings. Anyone who encounters code in which this macro is used will have to look up the definition of this macro to learn what it does. Has it been considered to suppress empty body warnings by changing the empty bodies from ";" into "{}"? I mentioned that possibility in PATCH 0/9 (cover letter)... which should have been RFC PATCH 0/9. So yes, it is possible. You are the only other person who has mentioned it. thanks.
--- linux-next-20200327.orig/include/linux/kernel.h +++ linux-next-20200327/include/linux/kernel.h @@ -40,6 +40,14 @@ #define READ 0 #define WRITE 1 +/* + * When using -Wextra, an "if" statement followed by an empty block + * (containing only a ';'), produces a warning from gcc: + * warning: suggest braces around empty body in an ‘if’ statement [-Wempty-body] + * Replace the empty body with do_empty() to silence this warning. + */ +#define do_empty() do { } while (0) + /** * ARRAY_SIZE - get the number of elements in array @arr * @arr: array to be sized
Add the do_empty() macro to silence gcc warnings about an empty body following an "if" statement when -Wextra is used. However, for debug printk calls that are being disabled, use either no_printk() or pr_debug() [and optionally dynamic printk debugging] instead. Signed-off-by: Randy Dunlap <rdunlap@infradead.org> Cc: Linus Torvalds <torvalds@linux-foundation.org> Cc: Andrew Morton <akpm@linux-foundation.org> Cc: Alexander Viro <viro@zeniv.linux.org.uk> Cc: linux-fsdevel@vger.kernel.org Cc: Dmitry Torokhov <dmitry.torokhov@gmail.com> Cc: linux-input@vger.kernel.org Cc: Jaroslav Kysela <perex@perex.cz> Cc: Takashi Iwai <tiwai@suse.com> Cc: alsa-devel@alsa-project.org Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Cc: linux-usb@vger.kernel.org Cc: "J. Bruce Fields" <bfields@fieldses.org> Cc: Chuck Lever <chuck.lever@oracle.com> Cc: linux-nfs@vger.kernel.org Cc: Johannes Berg <johannes@sipsolutions.net> Cc: Dan Williams <dan.j.williams@intel.com> Cc: Vishal Verma <vishal.l.verma@intel.com> Cc: Dave Jiang <dave.jiang@intel.com> Cc: linux-nvdimm@lists.01.org Cc: "Martin K. Petersen" <martin.petersen@oracle.com> Cc: linux-scsi@vger.kernel.org Cc: target-devel@vger.kernel.org Cc: Zzy Wysm <zzy@zzywysm.com> --- include/linux/kernel.h | 8 ++++++++ 1 file changed, 8 insertions(+)