This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH 3/4] dtrace-probe: Put semicolon after while on its own line


On Wednesday, June 21 2017, Simon Marchi wrote:

> clang shows this warning.
>
>   /home/emaisin/src/binutils-gdb/gdb/dtrace-probe.c:424:52: error: while loop has empty body [-Werror,-Wempty-body]
>             while (*p++ != '\0' && p - strtab < strtab_size);
>                                                             ^
>   /home/emaisin/src/binutils-gdb/gdb/dtrace-probe.c:424:52: note: put the semicolon on a separate line to silence this warning
>
> Putting the semicolon on its own line is not a big sacrifice to get rid of this
> warning.  I think it's also useful to keep this, because it can catch errors
> like this:
>
>   while (something);
>     {
>       ...
>     }
>
> although gcc would warn about it in a different way (misleading indentation).
>
> This warning is already discussed here in the GCC bugzilla:
>
>   https://gcc.gnu.org/bugzilla/show_bug.cgi?id=62184
>
> gdb/ChangeLog:
>
> 	* dtrace-probe.c (dtrace_process_dof_probe): Put semi-colon on
> 	its own line.
> ---
>  gdb/dtrace-probe.c | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/gdb/dtrace-probe.c b/gdb/dtrace-probe.c
> index 122f8de..9a02694 100644
> --- a/gdb/dtrace-probe.c
> +++ b/gdb/dtrace-probe.c
> @@ -421,7 +421,8 @@ dtrace_process_dof_probe (struct objfile *objfile,
>  	  arg.type_str = xstrdup (p);
>  
>  	  /* Use strtab_size as a sentinel.  */
> -	  while (*p++ != '\0' && p - strtab < strtab_size);
> +	  while (*p++ != '\0' && p - strtab < strtab_size)
> +	    ;  /* Silence clang's -Wempty-body warning.  */

Lately I've been choosing to explicitly put "continue;" when the body
doesn't contain anything, like:

	while (*p++ != '\0' && p - strtab < strtab_size)
	  continue;

I don't know what others think about it, but it would solve this problem
and also be more verbose that we're just iterating without a body.

>  
>  	  /* Try to parse a type expression from the type string.  If
>  	     this does not work then we set the type to `long
> -- 
> 2.7.4

-- 
Sergio
GPG key ID: 237A 54B1 0287 28BF 00EF  31F4 D0EB 7628 65FC 5E36
Please send encrypted e-mail if possible
http://sergiodj.net/


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]