[RFA,01/13] Simple unused variable removals

Message ID 20180712205208.32646-2-tom@tromey.com
State New
Headers show
Series
  • Add -Wunused-variable
Related show

Commit Message

Tom Tromey July 12, 2018, 8:51 p.m.
This patch holds all the straightforward unused variable deletions.

gdb/ChangeLog
2018-07-12  Tom Tromey  <tom@tromey.com>

	* ada-lang.c (ada_lookup_symbol_list_worker): Remove unused
	variable.
	* amd64-tdep.c (amd64_supply_xsave): Remove unused variable.
	* arm-tdep.c (arm_record_data_proc_misc_ld_str): Remove unused
	variable.
	* breakpoint.c (check_no_tracepoint_commands, update_watchpoint):
	Remove unused variable.
	* cli/cli-script.c (recurse_read_control_structure): Remove unused
	variable.
	* common/tdesc.c (print_xml_feature::visit): Remove unused
	variable.
	* compile/compile-object-load.c (store_regs): Remove unused
	variables.
	* complaints.c (clear_complaints): Remove unused variable.
	* corelow.c (core_target_open): Remove unused variable.
	* fbsd-tdep.c (fbsd_core_info_proc_status): Remove unused
	variable.
	* guile/scm-frame.c (gdbscm_frame_read_var): Remove unused
	variable.
	* guile/scm-symtab.c (stscm_print_sal_smob): Remove unused
	variable.
	* guile/scm-type.c (gdbscm_field_baseclass_p): Remove unused
	variable.
	* guile/scm-utils.c (gdbscm_parse_function_args): Remove unused
	variable.
	* hppa-tdep.c (hppa_stub_frame_unwind_cache): Remove unused
	variable.
	* ia64-tdep.c (examine_prologue): Remove unused variable.
	* infcall.c (run_inferior_call): Remove unused variable.
	* inferior.c (exit_inferior): Remove unused variable.
	* infrun.c (infrun_thread_ptid_changed): Remove unused variable.
	* linespec.c (decode_line_2): Remove unused variable.
	* linux-nat.c (super_close): Remove.
	* linux-tdep.c (linux_info_proc): Remove unused variable.
	* mi/mi-main.c (mi_execute_command): Remove unused variable.
	* microblaze-linux-tdep.c (microblaze_linux_sigtramp_cache):
	Remove unused variable.
	* parse.c (find_minsym_type_and_address): Remove unused variable.
	* printcmd.c (info_symbol_command, printf_floating): Remove unused
	variable.
	* python/py-breakpoint.c (bppy_set_commands): Remove unused
	variable.
	* python/py-unwind.c (unwind_infopy_dealloc): Remove unused
	variables.
	* record-btrace.c (record_btrace_target::store_registers): Remove
	unused variable.
	(cmd_show_record_btrace_cpu): Remove unused variable.
	* riscv-tdep.c (riscv_register_reggroup_p)
	(riscv_push_dummy_call, riscv_return_value): Remove unused
	variable.
	* rust-exp.y (literal): Remove unused variable.
	* rust-lang.c (rust_evaluate_subexp) <OP_RUST_ARARAY>: Remove
	unused variable.
	<STRUCTOP_ANONYMOUS>: Likewise.
	* s390-linux-tdep.c (s390_linux_init_abi_31)
	(s390_linux_init_abi_64): Remove unused variable.
	* ser-ming2.c (ser_windows_read_prim, pipe_select_thread)
	(file_select_thread, net_windows_open, _initialize_ser_windows):
	Remove unused variables.
	* spu-tdep.c (spu_get_overlay_table): Remove unused variable.
	* symtab.c (find_pc_sect_line): Remove unused variable.
	* target-memory.c (compute_garbled_blocks): Remove unused
	variable.
	(target_write_memory_blocks): Remove unused variable.
	* target.c (target_stack::unpush): Remove unused variables.
	* tracepoint.c (start_tracing, all_tracepoint_actions)
	(merge_uploaded_trace_state_variables)
	(print_one_static_tracepoint_marker): Remove unused variable.
	* unittests/basic_string_view/element_access/char/1.cc (test01):
	Remove unused variable.
	* windows-nat.c (windows_continue, windows_add_all_dlls)
	(do_initial_windows_stuff, windows_nat_target::create_inferior):
	Remove unused variables.
---
 gdb/ChangeLog                                      | 76 ++++++++++++++++++++++
 gdb/ada-lang.c                                     |  1 -
 gdb/amd64-tdep.c                                   |  1 -
 gdb/arm-tdep.c                                     |  2 +-
 gdb/breakpoint.c                                   |  4 +-
 gdb/cli/cli-script.c                               |  2 +-
 gdb/common/tdesc.c                                 |  1 -
 gdb/compile/compile-object-load.c                  |  2 -
 gdb/complaints.c                                   |  2 -
 gdb/corelow.c                                      |  1 -
 gdb/fbsd-tdep.c                                    |  1 -
 gdb/guile/scm-frame.c                              |  1 -
 gdb/guile/scm-symtab.c                             |  1 -
 gdb/guile/scm-type.c                               |  1 -
 gdb/guile/scm-utils.c                              |  1 -
 gdb/hppa-tdep.c                                    |  2 -
 gdb/ia64-tdep.c                                    |  7 +-
 gdb/infcall.c                                      |  1 -
 gdb/inferior.c                                     |  1 -
 gdb/infrun.c                                       |  2 -
 gdb/linespec.c                                     |  2 -
 gdb/linux-nat.c                                    |  4 --
 gdb/linux-tdep.c                                   |  1 -
 gdb/mi/mi-main.c                                   |  1 -
 gdb/microblaze-linux-tdep.c                        |  2 -
 gdb/parse.c                                        |  1 -
 gdb/printcmd.c                                     |  2 -
 gdb/python/py-breakpoint.c                         |  1 -
 gdb/python/py-unwind.c                             |  2 -
 gdb/record-btrace.c                                |  4 --
 gdb/riscv-tdep.c                                   |  7 --
 gdb/rust-exp.y                                     |  1 -
 gdb/rust-lang.c                                    |  4 +-
 gdb/s390-linux-tdep.c                              |  2 -
 gdb/ser-mingw.c                                    |  8 +--
 gdb/spu-tdep.c                                     |  2 -
 gdb/symtab.c                                       |  1 -
 gdb/target-memory.c                                |  2 -
 gdb/target.c                                       |  3 -
 gdb/tracepoint.c                                   |  4 --
 .../basic_string_view/element_access/char/1.cc     |  2 +-
 gdb/windows-nat.c                                  |  7 --
 42 files changed, 85 insertions(+), 88 deletions(-)

-- 
2.13.6

Comments

Simon Marchi July 14, 2018, 1:15 a.m. | #1
On 2018-07-12 04:51 PM, Tom Tromey wrote:
> This patch holds all the straightforward unused variable deletions.


I've looked at this patch and I didn't find anything that looked wrong
to my eyes.  In some cases, such as:

--- a/gdb/spu-tdep.c
+++ b/gdb/spu-tdep.c
@@ -1820,8 +1820,6 @@ spu_get_overlay_table (struct objfile *objfile)
     {
       CORE_ADDR vma  = extract_unsigned_integer (ovly_table + 16*i + 0,
 						 4, byte_order);
-      CORE_ADDR size = extract_unsigned_integer (ovly_table + 16*i + 4,
-						 4, byte_order);
       CORE_ADDR pos  = extract_unsigned_integer (ovly_table + 16*i + 8,
 						 4, byte_order);
       CORE_ADDR buf  = extract_unsigned_integer (ovly_table + 16*i + 12,


I wondered this was a bug (should that variable really be used), but I
wouldn't know without some quite extensive research...  so all-in-all, LGTM.

Simon
Tom Tromey July 14, 2018, 12:40 p.m. | #2
>>>>> "Simon" == Simon Marchi <simark@simark.ca> writes:


Simon> -      CORE_ADDR size = extract_unsigned_integer (ovly_table + 16*i + 4,
Simon> -						 4, byte_order);

Simon> I wondered this was a bug (should that variable really be used), but I
Simon> wouldn't know without some quite extensive research...  so all-in-all, LGTM.

Yes, this one was on the bubble and I almost put it in its own patch...
I can't recall offhand if there were others like this.

Tom
Simon Marchi July 14, 2018, 9:54 p.m. | #3
On 2018-07-14 08:40 AM, Tom Tromey wrote:
>>>>>> "Simon" == Simon Marchi <simark@simark.ca> writes:

> 

> Simon> -      CORE_ADDR size = extract_unsigned_integer (ovly_table + 16*i + 4,

> Simon> -						 4, byte_order);

> 

> Simon> I wondered this was a bug (should that variable really be used), but I

> Simon> wouldn't know without some quite extensive research...  so all-in-all, LGTM.

> 

> Yes, this one was on the bubble and I almost put it in its own patch...

> I can't recall offhand if there were others like this.

> 

> Tom


Here are a few more found by cross-compiling or trying to compile random
files.  I think we have to accept the fact that we'll find more after the
patch series is merged.

Simon


From 1f97f379df3e3eab48da3a4a6a6843add8a60673 Mon Sep 17 00:00:00 2001
From: Simon Marchi <simon.marchi@polymtl.ca>

Date: Fri, 13 Jul 2018 21:49:43 -0400
Subject: [PATCH] obvious

---
 gdb/aarch64-linux-nat.c            |  2 +-
 gdb/aix-thread.c                   |  5 -----
 gdb/arm-linux-nat.c                | 12 ++++--------
 gdb/gdbserver/linux-mips-low.c     |  2 --
 gdb/mips-linux-nat.c               |  1 -
 gdb/nat/aarch64-sve-linux-ptrace.c |  1 -
 gdb/ppc-linux-nat.c                | 10 ----------
 gdb/remote-sim.c                   |  3 ---
 gdb/sparc64-obsd-nat.c             |  1 -
 gdb/xtensa-linux-nat.c             |  2 --
 10 files changed, 5 insertions(+), 34 deletions(-)

diff --git a/gdb/aarch64-linux-nat.c b/gdb/aarch64-linux-nat.c
index 43af99d11d2d..678c89029d40 100644
--- a/gdb/aarch64-linux-nat.c
+++ b/gdb/aarch64-linux-nat.c
@@ -819,7 +819,7 @@ bool
 aarch64_linux_nat_target::stopped_data_address (CORE_ADDR *addr_p)
 {
   siginfo_t siginfo;
-  int i, tid;
+  int i;
   struct aarch64_debug_reg_state *state;

   if (!linux_nat_get_siginfo (inferior_ptid, &siginfo))
diff --git a/gdb/aix-thread.c b/gdb/aix-thread.c
index 97592e5b1f70..6c8607af295d 100644
--- a/gdb/aix-thread.c
+++ b/gdb/aix-thread.c
@@ -671,8 +671,6 @@ giter_accum (struct thread_info *thread, void *bufp)
 static int
 ptid_cmp (ptid_t ptid1, ptid_t ptid2)
 {
-  int pid1, pid2;
-
   if (ptid1.pid () < ptid2.pid ())
     return -1;
   else if (ptid1.pid () > ptid2.pid ())
@@ -708,7 +706,6 @@ get_signaled_thread (void)
 {
   struct thrdsinfo64 thrinf;
   tid_t ktid = 0;
-  int result = 0;

   while (1)
   {
@@ -1502,7 +1499,6 @@ store_regs_user_thread (const struct regcache *regcache, pthdb_pthread_t pdtid)
   pthdb_context_t ctx;
   uint32_t int32;
   uint64_t int64;
-  double   dbl;

   if (debug_aix_thread)
     fprintf_unfiltered (gdb_stdlog,
@@ -1594,7 +1590,6 @@ store_regs_kernel_thread (const struct regcache *regcache, int regno,
   double fprs[ppc_num_fprs];
   struct ptxsprs sprs64;
   struct ptsprs  sprs32;
-  int i;

   if (debug_aix_thread)
     fprintf_unfiltered (gdb_stdlog,
diff --git a/gdb/arm-linux-nat.c b/gdb/arm-linux-nat.c
index 3c552ecde265..7d287c656800 100644
--- a/gdb/arm-linux-nat.c
+++ b/gdb/arm-linux-nat.c
@@ -205,7 +205,7 @@ store_fpregs (const struct regcache *regcache)
 static void
 fetch_regs (struct regcache *regcache)
 {
-  int ret, regno, tid;
+  int ret, tid;
   elf_gregset_t regs;

   /* Get the thread id for the ptrace call.  */
@@ -232,7 +232,7 @@ fetch_regs (struct regcache *regcache)
 static void
 store_regs (const struct regcache *regcache)
 {
-  int ret, regno, tid;
+  int ret, tid;
   elf_gregset_t regs;

   /* Get the thread id for the ptrace call.  */
@@ -339,7 +339,7 @@ static void
 fetch_vfp_regs (struct regcache *regcache)
 {
   gdb_byte regbuf[VFP_REGS_SIZE];
-  int ret, regno, tid;
+  int ret, tid;
   struct gdbarch *gdbarch = regcache->arch ();
   struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);

@@ -368,7 +368,7 @@ static void
 store_vfp_regs (const struct regcache *regcache)
 {
   gdb_byte regbuf[VFP_REGS_SIZE];
-  int ret, regno, tid;
+  int ret, tid;
   struct gdbarch *gdbarch = regcache->arch ();
   struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);

@@ -1064,7 +1064,6 @@ int
 arm_linux_nat_target::insert_hw_breakpoint (struct gdbarch *gdbarch,
 					    struct bp_target_info *bp_tgt)
 {
-  struct lwp_info *lp;
   struct arm_linux_hw_breakpoint p;

   if (arm_linux_get_hw_breakpoint_count () == 0)
@@ -1082,7 +1081,6 @@ int
 arm_linux_nat_target::remove_hw_breakpoint (struct gdbarch *gdbarch,
 					    struct bp_target_info *bp_tgt)
 {
-  struct lwp_info *lp;
   struct arm_linux_hw_breakpoint p;

   if (arm_linux_get_hw_breakpoint_count () == 0)
@@ -1134,7 +1132,6 @@ arm_linux_nat_target::insert_watchpoint (CORE_ADDR addr, int len,
 					 enum target_hw_bp_type rw,
 					 struct expression *cond)
 {
-  struct lwp_info *lp;
   struct arm_linux_hw_breakpoint p;

   if (arm_linux_get_hw_watchpoint_count () == 0)
@@ -1153,7 +1150,6 @@ arm_linux_nat_target::remove_watchpoint (CORE_ADDR addr,
 					 int len, enum target_hw_bp_type rw,
 					 struct expression *cond)
 {
-  struct lwp_info *lp;
   struct arm_linux_hw_breakpoint p;

   if (arm_linux_get_hw_watchpoint_count () == 0)
diff --git a/gdb/gdbserver/linux-mips-low.c b/gdb/gdbserver/linux-mips-low.c
index 2194af6c0a50..393488ac5ba9 100644
--- a/gdb/gdbserver/linux-mips-low.c
+++ b/gdb/gdbserver/linux-mips-low.c
@@ -852,7 +852,6 @@ static void
 mips_collect_ptrace_register (struct regcache *regcache,
 			      int regno, char *buf)
 {
-  const struct target_desc *tdesc = current_process ()->tdesc;
   int use_64bit = sizeof (PTRACE_XFER_TYPE) == 8;

   if (use_64bit && register_size (regcache->tdesc, regno) == 4)
@@ -872,7 +871,6 @@ static void
 mips_supply_ptrace_register (struct regcache *regcache,
 			     int regno, const char *buf)
 {
-  const struct target_desc *tdesc = current_process ()->tdesc;
   int use_64bit = sizeof (PTRACE_XFER_TYPE) == 8;

   if (use_64bit && register_size (regcache->tdesc, regno) == 4)
diff --git a/gdb/mips-linux-nat.c b/gdb/mips-linux-nat.c
index 21b1f583b922..f143367a13bc 100644
--- a/gdb/mips-linux-nat.c
+++ b/gdb/mips-linux-nat.c
@@ -677,7 +677,6 @@ mips_linux_nat_target::insert_watchpoint (CORE_ADDR addr, int len,
   struct mips_watchpoint *new_watch;
   struct mips_watchpoint **pw;

-  int i;
   int retval;

   if (!mips_linux_read_watch_registers (inferior_ptid.lwp (),
diff --git a/gdb/nat/aarch64-sve-linux-ptrace.c b/gdb/nat/aarch64-sve-linux-ptrace.c
index a2f9261ba6f8..7b4027195be9 100644
--- a/gdb/nat/aarch64-sve-linux-ptrace.c
+++ b/gdb/nat/aarch64-sve-linux-ptrace.c
@@ -67,7 +67,6 @@ std::unique_ptr<gdb_byte[]>
 aarch64_sve_get_sveregs (int tid)
 {
   struct iovec iovec;
-  struct user_sve_header header;
   uint64_t vq = aarch64_sve_get_vq (tid);

   if (vq == 0)
diff --git a/gdb/ppc-linux-nat.c b/gdb/ppc-linux-nat.c
index 9719a0e906de..0b7052d0f6de 100644
--- a/gdb/ppc-linux-nat.c
+++ b/gdb/ppc-linux-nat.c
@@ -532,11 +532,9 @@ static void
 fetch_register (struct regcache *regcache, int tid, int regno)
 {
   struct gdbarch *gdbarch = regcache->arch ();
-  struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
   /* This isn't really an address.  But ptrace thinks of it as one.  */
   CORE_ADDR regaddr = ppc_register_u_addr (gdbarch, regno);
   int bytes_transferred;
-  unsigned int offset;         /* Offset of registers within the u area.  */
   gdb_byte buf[PPC_MAX_REGISTER_SIZE];

   if (altivec_register_p (gdbarch, regno))
@@ -630,8 +628,6 @@ fetch_register (struct regcache *regcache, int tid, int regno)
 static int
 fetch_all_gp_regs (struct regcache *regcache, int tid)
 {
-  struct gdbarch *gdbarch = regcache->arch ();
-  struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
   gdb_gregset_t gregset;

   if (ptrace (PTRACE_GETREGS, tid, 0, (void *) &gregset) < 0)
@@ -728,7 +724,6 @@ fetch_fp_regs (struct regcache *regcache, int tid)
 static void
 fetch_ppc_registers (struct regcache *regcache, int tid)
 {
-  int i;
   struct gdbarch *gdbarch = regcache->arch ();
   struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);

@@ -1004,8 +999,6 @@ store_register (const struct regcache *regcache, int tid, int regno)
 static int
 store_all_gp_regs (const struct regcache *regcache, int tid, int regno)
 {
-  struct gdbarch *gdbarch = regcache->arch ();
-  struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
   gdb_gregset_t gregset;

   if (ptrace (PTRACE_GETREGS, tid, 0, (void *) &gregset) < 0)
@@ -1122,7 +1115,6 @@ store_fp_regs (const struct regcache *regcache, int tid, int regno)
 static void
 store_ppc_registers (const struct regcache *regcache, int tid)
 {
-  int i;
   struct gdbarch *gdbarch = regcache->arch ();
   struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);

@@ -1407,7 +1399,6 @@ hwdebug_insert_point (struct ppc_hw_breakpoint *b, int tid)
   gdb::unique_xmalloc_ptr<ppc_hw_breakpoint> p (XDUP (ppc_hw_breakpoint, b));
   struct hw_break_tuple *hw_breaks;
   struct thread_points *t;
-  struct hw_break_tuple *tuple;

   errno = 0;
   slot = ptrace (PPC_PTRACE_SETHWDEBUG, tid, 0, p.get ());
@@ -1627,7 +1618,6 @@ can_use_watchpoint_cond_accel (void)
   struct thread_points *p;
   int tid = inferior_ptid.lwp ();
   int cnt = hwdebug_info.num_condition_regs, i;
-  CORE_ADDR tmp_value;

   if (!have_ptrace_hwdebug_interface () || cnt == 0)
     return 0;
diff --git a/gdb/remote-sim.c b/gdb/remote-sim.c
index f76261dadf64..cc7a6f27fc99 100644
--- a/gdb/remote-sim.c
+++ b/gdb/remote-sim.c
@@ -377,9 +377,6 @@ end_callbacks (void)
 static int
 gdb_os_write_stdout (host_callback *p, const char *buf, int len)
 {
-  int i;
-  char b[2];
-
   ui_file_write (gdb_stdtarg, buf, len);
   return len;
 }
diff --git a/gdb/sparc64-obsd-nat.c b/gdb/sparc64-obsd-nat.c
index 593a7ac651b4..7f7bb78b656f 100644
--- a/gdb/sparc64-obsd-nat.c
+++ b/gdb/sparc64-obsd-nat.c
@@ -77,7 +77,6 @@ static int
 sparc64obsd_supply_pcb (struct regcache *regcache, struct pcb *pcb)
 {
   u_int64_t state;
-  int regnum;

   /* The following is true for OpenBSD 3.0:

diff --git a/gdb/xtensa-linux-nat.c b/gdb/xtensa-linux-nat.c
index 007a5c3f058f..ea113bdd7146 100644
--- a/gdb/xtensa-linux-nat.c
+++ b/gdb/xtensa-linux-nat.c
@@ -204,7 +204,6 @@ fetch_gregs (struct regcache *regcache, int regnum)
 {
   int tid = regcache->ptid ().lwp ();
   gdb_gregset_t regs;
-  int areg;

   if (ptrace (PTRACE_GETREGS, tid, 0, (long) &regs) < 0)
     {
@@ -223,7 +222,6 @@ store_gregs (struct regcache *regcache, int regnum)
 {
   int tid = regcache->ptid ().lwp ();
   gdb_gregset_t regs;
-  int areg;

   if (ptrace (PTRACE_GETREGS, tid, 0, (long) &regs) < 0)
     {
-- 
2.18.0
Simon Marchi July 14, 2018, 9:55 p.m. | #4
On 2018-07-14 08:40 AM, Tom Tromey wrote:
>>>>>> "Simon" == Simon Marchi <simark@simark.ca> writes:

> 

> Simon> -      CORE_ADDR size = extract_unsigned_integer (ovly_table + 16*i + 4,

> Simon> -						 4, byte_order);

> 

> Simon> I wondered this was a bug (should that variable really be used), but I

> Simon> wouldn't know without some quite extensive research...  so all-in-all, LGTM.

> 

> Yes, this one was on the bubble and I almost put it in its own patch...

> I can't recall offhand if there were others like this.

> 

> Tom

> 



And here's another one that I think is less obvious.  The call has side-effects
(it allocates the per-inferior data), but I don't think it's really needed.


From 4014eefe405a66c6e2ade325e14ed891e9f0f62a Mon Sep 17 00:00:00 2001
From: Simon Marchi <simon.marchi@polymtl.ca>

Date: Fri, 13 Jul 2018 23:09:04 -0400
Subject: [PATCH] semi-obvious

---
 gdb/remote-sim.c | 6 ------
 1 file changed, 6 deletions(-)

diff --git a/gdb/remote-sim.c b/gdb/remote-sim.c
index cc7a6f27fc99..d30b38ecb7ce 100644
--- a/gdb/remote-sim.c
+++ b/gdb/remote-sim.c
@@ -831,9 +831,6 @@ gdbsim_close_inferior (struct inferior *inf, void *arg)
 void
 gdbsim_target::close ()
 {
-  struct sim_inferior_data *sim_data
-    = get_sim_inferior_data (current_inferior (), SIM_INSTANCE_NOT_NEEDED);
-
   if (remote_debug)
     fprintf_unfiltered (gdb_stdlog, "gdbsim_close\n");

@@ -1184,9 +1181,6 @@ gdbsim_target::files_info ()
 void
 gdbsim_target::mourn_inferior ()
 {
-  struct sim_inferior_data *sim_data
-    = get_sim_inferior_data (current_inferior (), SIM_INSTANCE_NOT_NEEDED);
-
   if (remote_debug)
     fprintf_unfiltered (gdb_stdlog, "gdbsim_mourn_inferior:\n");

-- 
2.18.0
Pedro Alves July 16, 2018, 1:33 p.m. | #5
On 07/14/2018 01:40 PM, Tom Tromey wrote:
>>>>>> "Simon" == Simon Marchi <simark@simark.ca> writes:

> 

> Simon> -      CORE_ADDR size = extract_unsigned_integer (ovly_table + 16*i + 4,

> Simon> -						 4, byte_order);

> 

> Simon> I wondered this was a bug (should that variable really be used), but I

> Simon> wouldn't know without some quite extensive research...  so all-in-all, LGTM.

> 

> Yes, this one was on the bubble and I almost put it in its own patch...

> I can't recall offhand if there were others like this.


I skimmed the patch and it looks good to me to, and, that bit
also gave me pause.  I was wondering whether we should replace
it with a comment, saying that we're skipping 4 bytes which hold
the entry's size.  That might save someone some time in case the size
turns out to be needed.  (I have no idea where the structure being
extracted is documented, for example.)

Thanks,
Pedro Alves
Pedro Alves July 16, 2018, 1:38 p.m. | #6
On 07/14/2018 10:55 PM, Simon Marchi wrote:

> And here's another one that I think is less obvious.  The call has side-effects

> (it allocates the per-inferior data), but I don't think it's really needed.


I'm pretty sure it's not needed.  Feel free to push in,
I don't think there's need to squash with Tromey's patch.

Thanks,
Pedro Alves
Tom Tromey July 16, 2018, 3:35 p.m. | #7
>>>>> "Pedro" == Pedro Alves <palves@redhat.com> writes:


Simon> -      CORE_ADDR size = extract_unsigned_integer (ovly_table + 16*i + 4,
Simon> -						 4, byte_order);
>> 

Simon> I wondered this was a bug (should that variable really be used), but I
Simon> wouldn't know without some quite extensive research...  so all-in-all, LGTM.
>> 

>> Yes, this one was on the bubble and I almost put it in its own patch...

>> I can't recall offhand if there were others like this.


Pedro> I skimmed the patch and it looks good to me to, and, that bit
Pedro> also gave me pause.  I was wondering whether we should replace
Pedro> it with a comment, saying that we're skipping 4 bytes which hold
Pedro> the entry's size.  That might save someone some time in case the size
Pedro> turns out to be needed.  (I have no idea where the structure being
Pedro> extracted is documented, for example.)

I've split this into a separate patch and added a comment.

Tom

Patch

diff --git a/gdb/ada-lang.c b/gdb/ada-lang.c
index 89cbec35b03..d9854b74175 100644
--- a/gdb/ada-lang.c
+++ b/gdb/ada-lang.c
@@ -5786,7 +5786,6 @@  ada_lookup_symbol_list_worker (const lookup_name_info &lookup_name,
 {
   int syms_from_global_search;
   int ndefns;
-  int results_size;
   auto_obstack obstack;
 
   ada_add_all_symbols (&obstack, block, lookup_name,
diff --git a/gdb/amd64-tdep.c b/gdb/amd64-tdep.c
index 190e086ebfe..088542d72b4 100644
--- a/gdb/amd64-tdep.c
+++ b/gdb/amd64-tdep.c
@@ -3373,7 +3373,6 @@  amd64_supply_xsave (struct regcache *regcache, int regnum,
       && gdbarch_bfd_arch_info (gdbarch)->bits_per_word == 64)
     {
       const gdb_byte *regs = (const gdb_byte *) xsave;
-      static const gdb_byte zero[I386_MAX_REGISTER_SIZE] = { 0 };
       ULONGEST clear_bv;
 
       clear_bv = i387_xsave_get_clear_bv (gdbarch, xsave);
diff --git a/gdb/arm-tdep.c b/gdb/arm-tdep.c
index fdfb360f5cc..b1a05bbeba2 100644
--- a/gdb/arm-tdep.c
+++ b/gdb/arm-tdep.c
@@ -10219,7 +10219,7 @@  arm_record_data_proc_misc_ld_str (insn_decode_record *arm_insn_r)
   uint32_t record_buf[8], record_buf_mem[8];
   ULONGEST u_regval[2] = {0};
 
-  uint32_t reg_src1 = 0, reg_dest = 0;
+  uint32_t reg_src1 = 0;
   uint32_t opcode1 = 0;
 
   arm_insn_r->opcode = bits (arm_insn_r->arm_insn, 21, 24);
diff --git a/gdb/breakpoint.c b/gdb/breakpoint.c
index b135db3db95..9e04c7ea83a 100644
--- a/gdb/breakpoint.c
+++ b/gdb/breakpoint.c
@@ -1009,8 +1009,6 @@  check_no_tracepoint_commands (struct command_line *commands)
 
   for (c = commands; c; c = c->next)
     {
-      int i;
-
       if (c->control_type == while_stepping_control)
 	error (_("The 'while-stepping' command can "
 		 "only be used for tracepoints"));
@@ -1775,7 +1773,7 @@  update_watchpoint (struct watchpoint *b, int reparse)
     {
       int pc = 0;
       std::vector<value_ref_ptr> val_chain;
-      struct value *v, *result, *next;
+      struct value *v, *result;
       struct program_space *frame_pspace;
 
       fetch_subexp_value (b->exp.get (), &pc, &v, &result, &val_chain, 0);
diff --git a/gdb/cli/cli-script.c b/gdb/cli/cli-script.c
index 87ebf9fc00c..6f31a400197 100644
--- a/gdb/cli/cli-script.c
+++ b/gdb/cli/cli-script.c
@@ -1081,7 +1081,7 @@  recurse_read_control_structure (gdb::function_view<const char * ()> read_next_li
 {
   enum misc_command_type val;
   enum command_control_type ret;
-  struct command_line **body_ptr, *child_tail, *next;
+  struct command_line *child_tail, *next;
   counted_command_line *current_body = &current_cmd->body_list_0;
 
   child_tail = NULL;
diff --git a/gdb/common/tdesc.c b/gdb/common/tdesc.c
index 68584a7f94f..43a066e1e64 100644
--- a/gdb/common/tdesc.c
+++ b/gdb/common/tdesc.c
@@ -314,7 +314,6 @@  void print_xml_feature::visit (const tdesc_type_vector *t)
 
 void print_xml_feature::visit (const tdesc_type_with_fields *t)
 {
-  struct tdesc_type_field *f;
   const static char *types[] = { "struct", "union", "flags", "enum" };
 
   gdb_assert (t->kind >= TDESC_TYPE_STRUCT && t->kind <= TDESC_TYPE_ENUM);
diff --git a/gdb/compile/compile-object-load.c b/gdb/compile/compile-object-load.c
index 9b3c51fe288..a83f95dda93 100644
--- a/gdb/compile/compile-object-load.c
+++ b/gdb/compile/compile-object-load.c
@@ -555,9 +555,7 @@  get_regs_type (struct symbol *func_sym, struct objfile *objfile)
 static void
 store_regs (struct type *regs_type, CORE_ADDR regs_base)
 {
-  thread_info *thread = inferior_thread ();
   struct gdbarch *gdbarch = target_gdbarch ();
-  struct regcache *regcache = get_thread_regcache (thread);
   int fieldno;
 
   for (fieldno = 0; fieldno < TYPE_NFIELDS (regs_type); fieldno++)
diff --git a/gdb/complaints.c b/gdb/complaints.c
index 1bf99d40f01..03102f13ab3 100644
--- a/gdb/complaints.c
+++ b/gdb/complaints.c
@@ -92,8 +92,6 @@  complaint_internal (const char *fmt, ...)
 void
 clear_complaints (int less_verbose)
 {
-  struct complain *p;
-
   counters.clear ();
 
   if (!less_verbose)
diff --git a/gdb/corelow.c b/gdb/corelow.c
index ecf966525ed..059ce2f6ebd 100644
--- a/gdb/corelow.c
+++ b/gdb/corelow.c
@@ -358,7 +358,6 @@  core_target_open (const char *arg, int from_tty)
 {
   const char *p;
   int siggy;
-  struct cleanup *old_chain;
   int scratch_chan;
   int flags;
 
diff --git a/gdb/fbsd-tdep.c b/gdb/fbsd-tdep.c
index 9cea0098d6b..ac5b3bfa120 100644
--- a/gdb/fbsd-tdep.c
+++ b/gdb/fbsd-tdep.c
@@ -787,7 +787,6 @@  fbsd_core_info_proc_status (struct gdbarch *gdbarch)
 {
   const struct kinfo_proc_layout *kp;
   asection *section;
-  const char *state;
   unsigned char *descdata;
   int addr_bit, long_bit;
   size_t note_size;
diff --git a/gdb/guile/scm-frame.c b/gdb/guile/scm-frame.c
index 7b539677ffd..765bf1d07b8 100644
--- a/gdb/guile/scm-frame.c
+++ b/gdb/guile/scm-frame.c
@@ -878,7 +878,6 @@  gdbscm_frame_read_var (SCM self, SCM symbol_scm, SCM rest)
   else if (scm_is_string (symbol_scm))
     {
       const struct block *block = NULL;
-      struct cleanup *cleanup;
       struct gdb_exception except = exception_none;
 
       if (! SCM_UNBNDP (block_scm))
diff --git a/gdb/guile/scm-symtab.c b/gdb/guile/scm-symtab.c
index 7d94b817d0a..14d1f81836b 100644
--- a/gdb/guile/scm-symtab.c
+++ b/gdb/guile/scm-symtab.c
@@ -395,7 +395,6 @@  static int
 stscm_print_sal_smob (SCM self, SCM port, scm_print_state *pstate)
 {
   sal_smob *s_smob = (sal_smob *) SCM_SMOB_DATA (self);
-  symtab_smob *st_smob = (symtab_smob *) SCM_SMOB_DATA (s_smob->symtab_scm);
 
   gdbscm_printf (port, "#<%s ", symtab_smob_name);
   scm_write (s_smob->symtab_scm, port);
diff --git a/gdb/guile/scm-type.c b/gdb/guile/scm-type.c
index cc997563dab..12fc6c09dc3 100644
--- a/gdb/guile/scm-type.c
+++ b/gdb/guile/scm-type.c
@@ -1224,7 +1224,6 @@  gdbscm_field_baseclass_p (SCM self)
 {
   field_smob *f_smob
     = tyscm_get_field_smob_arg_unsafe (self, SCM_ARG1, FUNC_NAME);
-  struct field *field = tyscm_field_smob_to_field (f_smob);
   struct type *type = tyscm_field_smob_containing_type (f_smob);
 
   if (TYPE_CODE (type) == TYPE_CODE_STRUCT)
diff --git a/gdb/guile/scm-utils.c b/gdb/guile/scm-utils.c
index 73b0dec73ea..c70bf57cfc7 100644
--- a/gdb/guile/scm-utils.c
+++ b/gdb/guile/scm-utils.c
@@ -387,7 +387,6 @@  gdbscm_parse_function_args (const char *func_name,
   SCM rest = SCM_EOL;
   /* Keep track of malloc'd strings.  We need to free them upon error.  */
   std::vector<char *> allocated_strings;
-  char *ptr;
 
   have_rest = validate_arg_format (format);
   num_keywords = count_keywords (keywords);
diff --git a/gdb/hppa-tdep.c b/gdb/hppa-tdep.c
index 1ea36704279..319096e056f 100644
--- a/gdb/hppa-tdep.c
+++ b/gdb/hppa-tdep.c
@@ -2435,9 +2435,7 @@  static struct hppa_stub_unwind_cache *
 hppa_stub_frame_unwind_cache (struct frame_info *this_frame,
 			      void **this_cache)
 {
-  struct gdbarch *gdbarch = get_frame_arch (this_frame);
   struct hppa_stub_unwind_cache *info;
-  struct unwind_table_entry *u;
 
   if (*this_cache)
     return (struct hppa_stub_unwind_cache *) *this_cache;
diff --git a/gdb/ia64-tdep.c b/gdb/ia64-tdep.c
index 0df62e26ab3..a512492dcf6 100644
--- a/gdb/ia64-tdep.c
+++ b/gdb/ia64-tdep.c
@@ -1525,11 +1525,8 @@  examine_prologue (CORE_ADDR pc, CORE_ADDR lim_pc,
 	         where the pc is.  If it's still early in the prologue
 		 this'll be wrong.  FIXME */
 	      if (this_frame)
-		{
-		  struct gdbarch *gdbarch = get_frame_arch (this_frame);
-		  saved_sp = get_frame_register_unsigned (this_frame,
-							  sp_regnum);
-		}
+		saved_sp = get_frame_register_unsigned (this_frame,
+							sp_regnum);
 	      spill_addr  = saved_sp
 	                  + (rM == 12 ? 0 : mem_stack_frame_size) 
 			  + imm;
diff --git a/gdb/infcall.c b/gdb/infcall.c
index 172c26ac820..c995ab7c918 100644
--- a/gdb/infcall.c
+++ b/gdb/infcall.c
@@ -587,7 +587,6 @@  run_inferior_call (struct call_thread_fsm *sm,
   struct gdb_exception caught_error = exception_none;
   int saved_in_infcall = call_thread->control.in_infcall;
   ptid_t call_thread_ptid = call_thread->ptid;
-  inferior *call_thread_inf = call_thread->inf;
   enum prompt_state saved_prompt_state = current_ui->prompt_state;
   int was_running = call_thread->state == THREAD_RUNNING;
   int saved_ui_async = current_ui->async;
diff --git a/gdb/inferior.c b/gdb/inferior.c
index 16991d41b3b..76f5581b7db 100644
--- a/gdb/inferior.c
+++ b/gdb/inferior.c
@@ -232,7 +232,6 @@  exit_inferior_1 (struct inferior *inftoex, int silent)
 void
 exit_inferior (inferior *inf)
 {
-  int pid = inf->pid;
   exit_inferior_1 (inf, 0);
 }
 
diff --git a/gdb/infrun.c b/gdb/infrun.c
index dd7e69e718e..05523a27563 100644
--- a/gdb/infrun.c
+++ b/gdb/infrun.c
@@ -2174,8 +2174,6 @@  start_step_over (void)
 static void
 infrun_thread_ptid_changed (ptid_t old_ptid, ptid_t new_ptid)
 {
-  struct displaced_step_inferior_state *displaced;
-
   if (inferior_ptid == old_ptid)
     inferior_ptid = new_ptid;
 }
diff --git a/gdb/linespec.c b/gdb/linespec.c
index 2a4189278ef..790ddf47409 100644
--- a/gdb/linespec.c
+++ b/gdb/linespec.c
@@ -1501,8 +1501,6 @@  decode_line_2 (struct linespec_state *self,
   for (i = 0; i < result->size (); ++i)
     {
       const struct linespec_canonical_name *canonical;
-      struct decode_line_2_item *item;
-
       std::string displayform;
 
       canonical = &self->canonical_names[i];
diff --git a/gdb/linux-nat.c b/gdb/linux-nat.c
index 18d9a3872a5..86d3dfd2b89 100644
--- a/gdb/linux-nat.c
+++ b/gdb/linux-nat.c
@@ -191,10 +191,6 @@  struct linux_nat_target *linux_target;
 /* Does the current host support PTRACE_GETREGSET?  */
 enum tribool have_ptrace_getregset = TRIBOOL_UNKNOWN;
 
-/* The saved to_close method, inherited from inf-ptrace.c.
-   Called by our to_close.  */
-static void (*super_close) (struct target_ops *);
-
 static unsigned int debug_linux_nat;
 static void
 show_debug_linux_nat (struct ui_file *file, int from_tty,
diff --git a/gdb/linux-tdep.c b/gdb/linux-tdep.c
index 5edf2ef2005..3cfa2a5aa48 100644
--- a/gdb/linux-tdep.c
+++ b/gdb/linux-tdep.c
@@ -726,7 +726,6 @@  linux_info_proc (struct gdbarch *gdbarch, const char *args,
   int status_f = (what == IP_STATUS || what == IP_ALL);
   int stat_f = (what == IP_STAT || what == IP_ALL);
   char filename[100];
-  char *data;
   int target_errno;
 
   if (args && isdigit (args[0]))
diff --git a/gdb/mi/mi-main.c b/gdb/mi/mi-main.c
index 18ce4e675f3..2163d423028 100644
--- a/gdb/mi/mi-main.c
+++ b/gdb/mi/mi-main.c
@@ -1999,7 +1999,6 @@  mi_execute_command (const char *cmd, int from_tty)
 	     again.  */
 	  && !command_notifies_uscc_observer (command.get ()))
 	{
-	  struct mi_interp *mi = (struct mi_interp *) top_level_interpreter ();
 	  int report_change = 0;
 
 	  if (command->thread == -1)
diff --git a/gdb/microblaze-linux-tdep.c b/gdb/microblaze-linux-tdep.c
index 5fc2cc8bab5..8bc153aec48 100644
--- a/gdb/microblaze-linux-tdep.c
+++ b/gdb/microblaze-linux-tdep.c
@@ -70,8 +70,6 @@  microblaze_linux_sigtramp_cache (struct frame_info *next_frame,
   CORE_ADDR base;
   CORE_ADDR gpregs;
   int regnum;
-  struct gdbarch *gdbarch = get_frame_arch (next_frame);
-  struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
 
   base = frame_unwind_register_unsigned (next_frame, MICROBLAZE_SP_REGNUM);
   if (bias > 0 && get_frame_address_in_block (next_frame) != func)
diff --git a/gdb/parse.c b/gdb/parse.c
index acb08f24363..0cbdb48d23a 100644
--- a/gdb/parse.c
+++ b/gdb/parse.c
@@ -458,7 +458,6 @@  find_minsym_type_and_address (minimal_symbol *msymbol,
 			      CORE_ADDR *address_p)
 {
   bound_minimal_symbol bound_msym = {msymbol, objfile};
-  struct gdbarch *gdbarch = get_objfile_arch (objfile);
   struct obj_section *section = MSYMBOL_OBJ_SECTION (objfile, msymbol);
   enum minimal_symbol_type type = MSYMBOL_TYPE (msymbol);
 
diff --git a/gdb/printcmd.c b/gdb/printcmd.c
index 696285ed8a4..2ecbd546532 100644
--- a/gdb/printcmd.c
+++ b/gdb/printcmd.c
@@ -1297,7 +1297,6 @@  info_symbol_command (const char *arg, int from_tty)
       {
 	const char *obj_name, *mapped, *sec_name, *msym_name;
 	const char *loc_string;
-	struct cleanup *old_chain;
 
 	matches = 1;
 	offset = sect_addr - MSYMBOL_VALUE_ADDRESS (objfile, msymbol);
@@ -2286,7 +2285,6 @@  printf_floating (struct ui_file *stream, const char *format,
   /* Parameter data.  */
   struct type *param_type = value_type (value);
   struct gdbarch *gdbarch = get_type_arch (param_type);
-  enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
 
   /* Determine target type corresponding to the format string.  */
   struct type *fmt_type;
diff --git a/gdb/python/py-breakpoint.c b/gdb/python/py-breakpoint.c
index a66e553cf83..e1db674647a 100644
--- a/gdb/python/py-breakpoint.c
+++ b/gdb/python/py-breakpoint.c
@@ -516,7 +516,6 @@  static int
 bppy_set_commands (PyObject *self, PyObject *newvalue, void *closure)
 {
   gdbpy_breakpoint_object *self_bp = (gdbpy_breakpoint_object *) self;
-  struct breakpoint *bp = self_bp->bp;
   struct gdb_exception except = exception_none;
 
   BPPY_SET_REQUIRE_VALID (self_bp);
diff --git a/gdb/python/py-unwind.c b/gdb/python/py-unwind.c
index 569d1f48d87..469ae489f43 100644
--- a/gdb/python/py-unwind.c
+++ b/gdb/python/py-unwind.c
@@ -329,8 +329,6 @@  static void
 unwind_infopy_dealloc (PyObject *self)
 {
   unwind_info_object *unwind_info = (unwind_info_object *) self;
-  int i;
-  saved_reg *reg;
 
   Py_XDECREF (unwind_info->pending_frame);
   delete unwind_info->saved_regs;
diff --git a/gdb/record-btrace.c b/gdb/record-btrace.c
index 09a3f6cc5c4..eafecd967d9 100644
--- a/gdb/record-btrace.c
+++ b/gdb/record-btrace.c
@@ -1569,8 +1569,6 @@  record_btrace_target::fetch_registers (struct regcache *regcache, int regno)
 void
 record_btrace_target::store_registers (struct regcache *regcache, int regno)
 {
-  struct target_ops *t;
-
   if (!record_btrace_generating_corefile
       && record_is_replaying (regcache->ptid ()))
     error (_("Cannot write registers while replaying."));
@@ -3085,8 +3083,6 @@  cmd_set_record_btrace_cpu (const char *args, int from_tty)
 static void
 cmd_show_record_btrace_cpu (const char *args, int from_tty)
 {
-  const char *cpu;
-
   if (args != nullptr && *args != 0)
     error (_("Trailing junk: '%s'."), args);
 
diff --git a/gdb/riscv-tdep.c b/gdb/riscv-tdep.c
index 25a8fda29c4..0d23387e215 100644
--- a/gdb/riscv-tdep.c
+++ b/gdb/riscv-tdep.c
@@ -773,8 +773,6 @@  static int
 riscv_register_reggroup_p (struct gdbarch  *gdbarch, int regnum,
 			   struct reggroup *reggroup)
 {
-  int float_p;
-  int raw_p;
   unsigned int i;
 
   /* Used by 'info registers' and 'info registers <groupname>'.  */
@@ -2034,7 +2032,6 @@  riscv_push_dummy_call (struct gdbarch *gdbarch,
   int i;
   CORE_ADDR sp_args, sp_refs;
   enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
-  struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
 
   struct riscv_arg_info *arg_info =
     (struct riscv_arg_info *) alloca (nargs * sizeof (struct riscv_arg_info));
@@ -2220,10 +2217,6 @@  riscv_return_value (struct gdbarch  *gdbarch,
 		    gdb_byte *readbuf,
 		    const gdb_byte *writebuf)
 {
-  enum type_code rv_type = TYPE_CODE (type);
-  unsigned int rv_size = TYPE_LENGTH (type);
-  int fp, regnum, flen;
-  ULONGEST tmp;
   struct riscv_call_info call_info (gdbarch);
   struct riscv_arg_info info;
   struct type *arg_type;
diff --git a/gdb/rust-exp.y b/gdb/rust-exp.y
index b60997681ae..98af8db606f 100644
--- a/gdb/rust-exp.y
+++ b/gdb/rust-exp.y
@@ -563,7 +563,6 @@  literal:
 		{ $$ = ast_dliteral ($1); }
 |	STRING
 		{
-		  const struct rust_op *str = ast_string ($1);
 		  struct set_field field;
 		  struct typed_val_int val;
 		  struct stoken token;
diff --git a/gdb/rust-lang.c b/gdb/rust-lang.c
index 5f4aceb86ba..1871ec7df9b 100644
--- a/gdb/rust-lang.c
+++ b/gdb/rust-lang.c
@@ -1555,7 +1555,7 @@  rust_evaluate_subexp (struct type *expect_type, struct expression *exp,
 
     case OP_RUST_ARRAY:
       {
-	int pc = (*pos)++;
+	(*pos)++;
 	int copies;
 	struct value *elt;
 	struct value *ncopies;
@@ -1589,7 +1589,7 @@  rust_evaluate_subexp (struct type *expect_type, struct expression *exp,
         /* Anonymous field access, i.e. foo.1.  */
         struct value *lhs;
         int pc, field_number, nfields;
-        struct type *type, *variant_type;
+        struct type *type;
 
         pc = (*pos)++;
         field_number = longest_to_int (exp->elts[pc + 1].longconst);
diff --git a/gdb/s390-linux-tdep.c b/gdb/s390-linux-tdep.c
index d9ac40b625f..4561559a855 100644
--- a/gdb/s390-linux-tdep.c
+++ b/gdb/s390-linux-tdep.c
@@ -1150,7 +1150,6 @@  s390_linux_init_abi_any (struct gdbarch_info info, struct gdbarch *gdbarch)
 static void
 s390_linux_init_abi_31 (struct gdbarch_info info, struct gdbarch *gdbarch)
 {
-  const struct target_desc *tdesc = info.target_desc;
   struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
 
   tdep->abi = ABI_LINUX_S390;
@@ -1167,7 +1166,6 @@  s390_linux_init_abi_31 (struct gdbarch_info info, struct gdbarch *gdbarch)
 static void
 s390_linux_init_abi_64 (struct gdbarch_info info, struct gdbarch *gdbarch)
 {
-  const struct target_desc *tdesc = info.target_desc;
   struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
 
   tdep->abi = ABI_LINUX_ZSERIES;
diff --git a/gdb/ser-mingw.c b/gdb/ser-mingw.c
index 605a071770a..937b66dd57b 100644
--- a/gdb/ser-mingw.c
+++ b/gdb/ser-mingw.c
@@ -321,9 +321,8 @@  ser_windows_read_prim (struct serial *scb, size_t count)
 {
   struct ser_windows_state *state;
   OVERLAPPED ov;
-  DWORD bytes_read, bytes_read_tmp;
+  DWORD bytes_read;
   HANDLE h;
-  gdb_byte *p;
 
   state = (struct ser_windows_state *) scb->state;
   if (state->in_progress)
@@ -351,7 +350,6 @@  ser_windows_read_prim (struct serial *scb, size_t count)
 static int
 ser_windows_write_prim (struct serial *scb, const void *buf, size_t len)
 {
-  struct ser_windows_state *state;
   OVERLAPPED ov;
   DWORD bytes_written;
   HANDLE h;
@@ -634,7 +632,6 @@  pipe_select_thread (void *arg)
 {
   struct serial *scb = (struct serial *) arg;
   struct ser_console_state *state;
-  int event_index;
   HANDLE h;
 
   state = (struct ser_console_state *) scb->state;
@@ -677,7 +674,6 @@  file_select_thread (void *arg)
 {
   struct serial *scb = (struct serial *) arg;
   struct ser_console_state *state;
-  int event_index;
   HANDLE h;
 
   state = (struct ser_console_state *) scb->state;
@@ -1188,7 +1184,6 @@  net_windows_open (struct serial *scb, const char *name)
 {
   struct net_windows_state *state;
   int ret;
-  DWORD threadId;
 
   ret = net_open (scb, name);
   if (ret != 0)
@@ -1347,7 +1342,6 @@  void
 _initialize_ser_windows (void)
 {
   WSADATA wsa_data;
-  struct serial_ops *ops;
 
   HMODULE hm = NULL;
 
diff --git a/gdb/spu-tdep.c b/gdb/spu-tdep.c
index c85a7407871..ea915203256 100644
--- a/gdb/spu-tdep.c
+++ b/gdb/spu-tdep.c
@@ -1820,8 +1820,6 @@  spu_get_overlay_table (struct objfile *objfile)
     {
       CORE_ADDR vma  = extract_unsigned_integer (ovly_table + 16*i + 0,
 						 4, byte_order);
-      CORE_ADDR size = extract_unsigned_integer (ovly_table + 16*i + 4,
-						 4, byte_order);
       CORE_ADDR pos  = extract_unsigned_integer (ovly_table + 16*i + 8,
 						 4, byte_order);
       CORE_ADDR buf  = extract_unsigned_integer (ovly_table + 16*i + 12,
diff --git a/gdb/symtab.c b/gdb/symtab.c
index d8a7a16e073..73c79833ce5 100644
--- a/gdb/symtab.c
+++ b/gdb/symtab.c
@@ -3053,7 +3053,6 @@  find_pc_sect_line (CORE_ADDR pc, struct obj_section *section, int notcurrent)
   struct symtab *iter_s;
   struct linetable *l;
   int len;
-  int i;
   struct linetable_entry *item;
   const struct blockvector *bv;
   struct bound_minimal_symbol msymbol;
diff --git a/gdb/target-memory.c b/gdb/target-memory.c
index 783e59dd551..670576de188 100644
--- a/gdb/target-memory.c
+++ b/gdb/target-memory.c
@@ -180,7 +180,6 @@  compute_garbled_blocks (const std::vector<memory_write_request> &erased_blocks,
 
   unsigned j;
   unsigned je = written_blocks.size ();
-  struct memory_write_request *erased_p;
 
   /* Look at each erased memory_write_request in turn, and
      see what part of it is subsequently written to.
@@ -265,7 +264,6 @@  target_write_memory_blocks (const std::vector<memory_write_request> &requests,
 			    void (*progress_cb) (ULONGEST, void *))
 {
   std::vector<memory_write_request> blocks = requests;
-  struct memory_write_request *r;
   std::vector<memory_write_request> regular;
   std::vector<memory_write_request> flash;
   std::vector<memory_write_request> erased, garbled;
diff --git a/gdb/target.c b/gdb/target.c
index 19d59ba603a..eba07cc9174 100644
--- a/gdb/target.c
+++ b/gdb/target.c
@@ -674,9 +674,6 @@  unpush_target (struct target_ops *t)
 bool
 target_stack::unpush (target_ops *t)
 {
-  struct target_ops **cur;
-  struct target_ops *tmp;
-
   if (t->to_stratum == dummy_stratum)
     internal_error (__FILE__, __LINE__,
 		    _("Attempt to unpush the dummy target"));
diff --git a/gdb/tracepoint.c b/gdb/tracepoint.c
index ab80b10ea1d..74d1183386c 100644
--- a/gdb/tracepoint.c
+++ b/gdb/tracepoint.c
@@ -1543,7 +1543,6 @@  trace_reset_local_state (void)
 void
 start_tracing (const char *notes)
 {
-  struct trace_state_variable *tsv;
   int any_enabled = 0, num_to_download = 0;
   int ret;
 
@@ -2752,7 +2751,6 @@  all_tracepoint_actions (struct breakpoint *t)
      the fly, and don't cache it.  */
   if (*default_collect)
     {
-      struct command_line *default_collect_action;
       gdb::unique_xmalloc_ptr<char> default_collect_line
 	(xstrprintf ("collect %s", default_collect));
 
@@ -3179,7 +3177,6 @@  create_tsv_from_upload (struct uploaded_tsv *utsv)
 void
 merge_uploaded_trace_state_variables (struct uploaded_tsv **uploaded_tsvs)
 {
-  int ix;
   struct uploaded_tsv *utsv;
   struct trace_state_variable *tsv;
   int highest;
@@ -3682,7 +3679,6 @@  print_one_static_tracepoint_marker (int count,
   if (!tracepoints.empty ())
     {
       int ix;
-      struct breakpoint *b;
 
       {
 	ui_out_emit_tuple tuple_emitter (uiout, "tracepoints-at");
diff --git a/gdb/unittests/basic_string_view/element_access/char/1.cc b/gdb/unittests/basic_string_view/element_access/char/1.cc
index 7f8e79e6d00..bba1782b1e3 100644
--- a/gdb/unittests/basic_string_view/element_access/char/1.cc
+++ b/gdb/unittests/basic_string_view/element_access/char/1.cc
@@ -27,7 +27,7 @@  test01()
   typedef gdb::string_view::size_type csize_type;
   typedef gdb::string_view::const_reference cref;
   typedef gdb::string_view::reference ref;
-  csize_type csz01, csz02;
+  csize_type csz01;
 
   const gdb::string_view str01("tamarindo, costa rica");
   gdb::string_view str02("41st street beach, capitola, california");
diff --git a/gdb/windows-nat.c b/gdb/windows-nat.c
index 6986dc355ac..8f4646d1cca 100644
--- a/gdb/windows-nat.c
+++ b/gdb/windows-nat.c
@@ -1298,7 +1298,6 @@  handle_exception (struct target_waitstatus *ourstatus)
 static BOOL
 windows_continue (DWORD continue_status, int id, int killed)
 {
-  int i;
   windows_thread_info *th;
   BOOL res;
 
@@ -1765,7 +1764,6 @@  windows_nat_target::wait (ptid_t ptid, struct target_waitstatus *ourstatus,
 static void
 windows_add_all_dlls (void)
 {
-  struct so_list *so;
   HMODULE dummy_hmodule;
   DWORD cb_needed;
   HMODULE *hmodules;
@@ -1815,7 +1813,6 @@  do_initial_windows_stuff (struct target_ops *ops, DWORD pid, int attaching)
 {
   int i;
   struct inferior *inf;
-  struct thread_info *tp;
 
   last_sig = GDB_SIGNAL_0;
   event_count = 0;
@@ -2516,16 +2513,12 @@  windows_nat_target::create_inferior (const char *exec_file,
   int tty;
   int ostdin, ostdout, ostderr;
 #else  /* !__CYGWIN__ */
-  char real_path[__PMAX];
   char shell[__PMAX]; /* Path to shell */
   const char *toexec;
   char *args, *allargs_copy;
   size_t args_len, allargs_len;
   int fd_inp = -1, fd_out = -1, fd_err = -1;
   HANDLE tty = INVALID_HANDLE_VALUE;
-  HANDLE inf_stdin = INVALID_HANDLE_VALUE;
-  HANDLE inf_stdout = INVALID_HANDLE_VALUE;
-  HANDLE inf_stderr = INVALID_HANDLE_VALUE;
   bool redirected = false;
   char *w32env;
   char *temp;