Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
From: Simon Marchi <simon.marchi@ericsson.com>
To: Tom Tromey <tom@tromey.com>, <gdb-patches@sourceware.org>
Subject: Re: [RFA 06/13] Remove dead code from m32c-tdep.c
Date: Thu, 12 Jul 2018 22:18:00 -0000	[thread overview]
Message-ID: <7b6df05d-0a2d-4ec5-7b32-91ba9e919250@ericsson.com> (raw)
In-Reply-To: <20180712205208.32646-7-tom@tromey.com>

On 2018-07-12 04:52 PM, Tom Tromey wrote:
> This removes some dead code from m32c-tdep.c.  I broke this out into a
> separate patch because the dead code seemed unusual, as if perhaps it
> had not been completed; and so I thought it deserved extra scrutiny.
> 
> gdb/ChangeLog
> 2018-07-12  Tom Tromey  <tom@tromey.com>
> 
> 	* m32c-tdep.c (mark_dma): Remove.
> 	(make_regs): Remove dead code.
> ---
>  gdb/ChangeLog   |  5 +++++
>  gdb/m32c-tdep.c | 23 -----------------------
>  2 files changed, 5 insertions(+), 23 deletions(-)
> 
> diff --git a/gdb/m32c-tdep.c b/gdb/m32c-tdep.c
> index f696568e3a7..6b1d1e83121 100644
> --- a/gdb/m32c-tdep.c
> +++ b/gdb/m32c-tdep.c
> @@ -689,15 +689,6 @@ mark_general (struct m32c_reg *reg)
>  }
>  
>  
> -/* Mark REG as a DMA register, and return it.  */
> -static struct m32c_reg *
> -mark_dma (struct m32c_reg *reg)
> -{
> -  reg->dma_p = 1;
> -  return reg;
> -}
> -
> -
>  /* Mark REG as a SYSTEM register, and return it.  */
>  static struct m32c_reg *
>  mark_system (struct m32c_reg *reg)
> @@ -839,20 +830,6 @@ make_regs (struct gdbarch *arch)
>    struct m32c_reg *pc          = G (RC (pc));
>    struct m32c_reg *flg         = G (R16U (flg));
>  
> -  if (mach == bfd_mach_m32c)
> -    {
> -      struct m32c_reg *svf     = S (R16U (svf));
> -      struct m32c_reg *svp     = S (RC (svp));
> -      struct m32c_reg *vct     = S (RC (vct));
> -
> -      struct m32c_reg *dmd01   = DMA (RP (dmd, tdep->uint8));
> -      struct m32c_reg *dct01   = DMA (RP (dct, tdep->uint16));
> -      struct m32c_reg *drc01   = DMA (RP (drc, tdep->uint16));
> -      struct m32c_reg *dma01   = DMA (RP (dma, tdep->data_addr_reg_type));
> -      struct m32c_reg *dsa01   = DMA (RP (dsa, tdep->data_addr_reg_type));
> -      struct m32c_reg *dra01   = DMA (RP (dra, tdep->data_addr_reg_type));
> -    }
> -
>    num_raw_regs = tdep->num_regs;
>  
>    r0 	      = G (CB (r0, raw_r0_pair));
> 

I'm unsure about this one.  If you expand the macros, it looks something
like this:

mark_dma((add_reg (arch, "dmd" "0", tdep->uint8, m32c_sim_reg_dmd0, m32c_raw_read, m32c_raw_write, 0, 0, 0),
          add_reg (arch, "dmd" "1", tdep->uint8, m32c_sim_reg_dmd1, m32c_raw_read, m32c_raw_write, 0, 0, 0) - 1))

On one hand, the add_reg calls look important to me, because they add registers
to the gdbarch_tdep structure, so I would keep them.  But the mark_dma call looks
really fishy.  It only receives the first register, because this expression actually
ends up using the "comma" operator, returning the value on the right.  A little bit like
in this small program:

#include <stdio.h>

int foo(int a) {
  return a;
}

int main()
{
  int val = foo((1, 2));
  printf("%d\n", val);
}

$ gcc test.c -Wall
test.c: In function ‘main’:
test.c:9:19: warning: left-hand operand of comma expression has no effect [-Wunused-value]
   int val = foo((1, 2));
                   ^
$ ./a.out
2

And the expression on the right actually returns the first register (because of the -1).
So we end up marking only one of the two registers as DMA.  I have no idea if that's
intended or not.

So maybe the safe thing to do would be to make mark_dma return void, and get
rid of the local variables and assignments (but keep the DMA(...) calls).

Simon


  reply	other threads:[~2018-07-12 22:18 UTC|newest]

Thread overview: 56+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-07-12 20:52 [RFA 00/13] Add -Wunused-variable Tom Tromey
2018-07-12 20:52 ` [RFA 11/13] Remove unused variables from gdbserver Tom Tromey
2018-07-14  2:47   ` Simon Marchi
2018-07-16 14:16     ` Pedro Alves
2018-07-12 20:52 ` [RFA 10/13] Remove unused declaration from value.c Tom Tromey
2018-07-13  2:52   ` Simon Marchi
2018-07-13 20:51     ` Tom Tromey
2018-07-13 21:49       ` Simon Marchi
2018-07-16 14:02         ` Pedro Alves
2018-07-16 15:34           ` Tom Tromey
2018-07-12 20:52 ` [RFA 06/13] Remove dead code from m32c-tdep.c Tom Tromey
2018-07-12 22:18   ` Simon Marchi [this message]
2018-07-13 20:49     ` Tom Tromey
2018-07-12 20:52 ` [RFA 09/13] Pass the correct argument to the observer in reread_symbols Tom Tromey
2018-07-13  2:49   ` Simon Marchi
2018-07-14  1:25     ` Simon Marchi
2018-07-12 20:52 ` [RFA 01/13] Simple unused variable removals Tom Tromey
2018-07-14  1:15   ` Simon Marchi
2018-07-14 12:40     ` Tom Tromey
2018-07-14 21:54       ` Simon Marchi
2018-07-14 21:56       ` Simon Marchi
2018-07-16 13:38         ` Pedro Alves
2018-07-16 13:33       ` Pedro Alves
2018-07-16 15:35         ` Tom Tromey
2018-07-12 20:52 ` [RFA 07/13] Remove unused declaration from py-prettyprint.c Tom Tromey
2018-07-14  1:24   ` Simon Marchi
2018-07-14 12:39     ` Tom Tromey
2018-07-16 14:11       ` Pedro Alves
2018-07-12 20:52 ` [RFA 05/13] Make a few calls in *-tdep.c for effect Tom Tromey
2018-07-12 21:58   ` Simon Marchi
2018-07-13 20:47     ` Tom Tromey
2018-07-16 14:03     ` Pedro Alves
2018-07-12 20:52 ` [RFA 03/13] Use a previously unused variable in bfin-tdep.c Tom Tromey
2018-07-14  1:17   ` Simon Marchi
2018-07-12 20:52 ` [RFA 12/13] Add ATTRIBUTE_UNUSED to regdat.sh output Tom Tromey
2018-07-16 15:11   ` Pedro Alves
2018-07-16 16:41     ` Tom Tromey
2018-07-16 17:54       ` Pedro Alves
2018-07-16 19:06         ` Tom Tromey
2018-07-16 21:12           ` Tom Tromey
2018-07-12 20:52 ` [RFA 13/13] Add -Wunused-variable to warnings.m4 Tom Tromey
2018-07-12 20:52 ` [RFA 02/13] Unused variable fixes related to conditional compilation Tom Tromey
2018-07-14  1:16   ` Simon Marchi
2018-07-14 21:50     ` Simon Marchi
2018-07-16 13:45       ` Pedro Alves
2018-07-22  2:25         ` Simon Marchi
2018-07-12 20:52 ` [RFA 04/13] Call some functions in guile/ for effect Tom Tromey
2018-07-14  1:19   ` Simon Marchi
2018-07-14 12:39     ` Tom Tromey
2018-07-16 13:54       ` Pedro Alves
2018-07-16 15:58         ` Tom Tromey
2018-07-12 20:52 ` [RFA 08/13] Fix ravenscar-thread.c to use arch_ops Tom Tromey
2018-07-14  1:25   ` Simon Marchi
2018-07-16 13:59     ` Pedro Alves
2018-07-16 15:36       ` Tom Tromey
2018-07-16 16:43         ` Pedro Alves

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=7b6df05d-0a2d-4ec5-7b32-91ba9e919250@ericsson.com \
    --to=simon.marchi@ericsson.com \
    --cc=gdb-patches@sourceware.org \
    --cc=tom@tromey.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox