This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
Re: [PATCH] linux-record: Squash cases with identical handling
- From: Yao Qi <qiyaoltc at gmail dot com>
- To: Andreas Arnez <arnez at linux dot vnet dot ibm dot com>
- Cc: gdb-patches at sourceware dot org, Yao Qi <qiyaoltc at gmail dot com>, "Markus T. Metzger" <markus dot t dot metzger at intel dot com>
- Date: Wed, 13 Apr 2016 13:02:43 +0100
- Subject: Re: [PATCH] linux-record: Squash cases with identical handling
- Authentication-results: sourceware.org; auth=none
- References: <m3zisxdbgq dot fsf at oc1027705133 dot ibm dot com>
Andreas Arnez <arnez@linux.vnet.ibm.com> writes:
Hi Andreas,
> While discussing a fix for a bad fall-through in linux-record.c, it was
> pointed out that the cases for gdb_sys_pipe2 and gdb_sys_pipe can be
> squashed into one. Thus I promised a minor cleanup for cases with
> identical handling:
>
> https://sourceware.org/ml/gdb-patches/2016-03/msg00310.html
I thought about squashing them too, but the reason I didn't do that is
these enum gdb_syscall in the switch block are listed in the numeric
order, so that it is quite easy to find whether a syscall is supported,
or add a new syscall.
I am not against your patch, but want to let people know why the code is
written that way, so that people can judge which one is better.
>
> case gdb_sys_read:
> + case gdb_sys_readlink:
> + case gdb_sys_recv:
> regcache_raw_read_unsigned (regcache, tdep->arg3, &tmpulongest);
> if (record_mem_at_reg (regcache, tdep->arg2, (int) tmpulongest))
> return -1;
> @@ -348,6 +350,7 @@ record_linux_system_call (enum gdb_syscall syscall,
> break;
>
> case gdb_sys_pipe:
> + case gdb_sys_pipe2:
> if (record_mem_at_reg (regcache, tdep->arg1, tdep->size_int * 2))
> return -1;
> break;
I don't mind this... anyway, it can shorten the code.
> @@ -1364,6 +1355,11 @@ Do you want to stop the program?"),
> case gdb_sys_ni_syscall167:
> break;
>
> + case gdb_sys_ppoll:
> + if (record_mem_at_reg (regcache, tdep->arg3, tdep->size_timespec))
> + return -1;
> + /* Fall through. */
> +
> case gdb_sys_poll:
> regcache_raw_read_unsigned (regcache, tdep->arg1, &tmpulongest);
> if (tmpulongest)
> @@ -1959,21 +1955,6 @@ Do you want to stop the program?"),
but, I don't like the fall-through.
--
Yao (éå)