[RFA,v2,01/13] Simple unused variable removals

Message ID 20180721184720.3263-2-tom@tromey.com
State New, archived
Headers

Commit Message

Tom Tromey July 21, 2018, 6:47 p.m. UTC
  This patch holds all the straightforward unused variable deletions.

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

	* guile/scm-value.c (gdbscm_value_call): Remove unused variables.
	* guile/scm-math.c (vlscm_unop_gdbthrow, vlscm_binop_gdbthrow)
	(vlscm_convert_typed_value_from_scheme): Remove unused variable.
	* buildsym-legacy.c (get_macro_table): Remove unused variable.
	* stack.c (frame_apply_level_command): Remove unused variable.
	* tic6x-tdep.c (tic6x_push_dummy_call): Remove unused variable.
	* sparc64-tdep.c (adi_examine_command): Remove unused variable.
	* rs6000-lynx178-tdep.c (rs6000_lynx178_push_dummy_call): Remove
	unused variable.
	* nios2-tdep.c (nios2_push_dummy_call): Remove unused variable.
	* mep-tdep.c (mep_push_dummy_call): Remove unused variable.
	* 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.
	* 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                                      | 86 ++++++++++++++++++++++
 gdb/ada-lang.c                                     |  1 -
 gdb/amd64-tdep.c                                   |  1 -
 gdb/arm-tdep.c                                     |  2 +-
 gdb/breakpoint.c                                   |  4 +-
 gdb/buildsym-legacy.c                              |  2 -
 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-math.c                               |  3 -
 gdb/guile/scm-symtab.c                             |  1 -
 gdb/guile/scm-type.c                               |  1 -
 gdb/guile/scm-utils.c                              |  1 -
 gdb/guile/scm-value.c                              |  2 -
 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/mep-tdep.c                                     |  1 -
 gdb/mi/mi-main.c                                   |  1 -
 gdb/microblaze-linux-tdep.c                        |  2 -
 gdb/nios2-tdep.c                                   |  1 -
 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/rs6000-lynx178-tdep.c                          |  1 -
 gdb/rust-exp.y                                     |  1 -
 gdb/rust-lang.c                                    |  4 +-
 gdb/s390-linux-tdep.c                              |  2 -
 gdb/ser-mingw.c                                    |  8 +-
 gdb/sparc64-tdep.c                                 |  2 -
 gdb/stack.c                                        |  3 +-
 gdb/symtab.c                                       |  1 -
 gdb/target-memory.c                                |  2 -
 gdb/target.c                                       |  3 -
 gdb/tic6x-tdep.c                                   |  1 -
 gdb/tracepoint.c                                   |  4 -
 .../basic_string_view/element_access/char/1.cc     |  2 +-
 gdb/windows-nat.c                                  |  7 --
 50 files changed, 97 insertions(+), 100 deletions(-)
  

Comments

Simon Marchi July 22, 2018, 2:04 a.m. UTC | #1
On 2018-07-21 02:47 PM, Tom Tromey wrote:
> This patch holds all the straightforward unused variable deletions.

LGTM, including the removal of any other simple unused variable that pop up by
the time you push the series.

Simon
  

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/buildsym-legacy.c b/gdb/buildsym-legacy.c
index 3553fa1c0ab..20f046d0434 100644
--- a/gdb/buildsym-legacy.c
+++ b/gdb/buildsym-legacy.c
@@ -321,8 +321,6 @@  buildsym_compunit_symtab (void)
 struct macro_table *
 get_macro_table (void)
 {
-  struct objfile *objfile;
-
   gdb_assert (buildsym_compunit != NULL);
   return buildsym_compunit->get_macro_table ();
 }
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 afd9702e64f..3d27907e193 100644
--- a/gdb/guile/scm-frame.c
+++ b/gdb/guile/scm-frame.c
@@ -879,7 +879,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-math.c b/gdb/guile/scm-math.c
index 74d50754a47..b82af4762cd 100644
--- a/gdb/guile/scm-math.c
+++ b/gdb/guile/scm-math.c
@@ -76,7 +76,6 @@  vlscm_unop_gdbthrow (enum valscm_unary_opcode opcode, SCM x,
 {
   struct gdbarch *gdbarch = get_current_arch ();
   const struct language_defn *language = current_language;
-  SCM result = SCM_BOOL_F;
 
   scoped_value_mark free_values;
 
@@ -142,7 +141,6 @@  vlscm_binop_gdbthrow (enum valscm_binary_opcode opcode, SCM x, SCM y,
   struct gdbarch *gdbarch = get_current_arch ();
   const struct language_defn *language = current_language;
   struct value *arg1, *arg2;
-  SCM result = SCM_BOOL_F;
   struct value *res_val = NULL;
   SCM except_scm;
 
@@ -791,7 +789,6 @@  vlscm_convert_typed_value_from_scheme (const char *func_name,
       else if (scm_is_string (obj))
 	{
 	  size_t len;
-	  struct cleanup *cleanup;
 
 	  if (type != NULL)
 	    {
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 eee0efe9c1d..e9ae957b81f 100644
--- a/gdb/guile/scm-type.c
+++ b/gdb/guile/scm-type.c
@@ -1214,7 +1214,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 8ea47f9cdf5..c24ff204837 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/guile/scm-value.c b/gdb/guile/scm-value.c
index 43f8001cf08..18558605d06 100644
--- a/gdb/guile/scm-value.c
+++ b/gdb/guile/scm-value.c
@@ -680,11 +680,9 @@  gdbscm_value_call (SCM self, SCM args)
   value_smob *v_smob
     = vlscm_get_value_smob_arg_unsafe (self, SCM_ARG1, FUNC_NAME);
   struct value *function = v_smob->value;
-  struct value *mark = value_mark ();
   struct type *ftype = NULL;
   long args_count;
   struct value **vargs = NULL;
-  SCM result = SCM_BOOL_F;
 
   TRY
     {
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 c7fc3c6f167..5e9ecb51515 100644
--- a/gdb/ia64-tdep.c
+++ b/gdb/ia64-tdep.c
@@ -1526,11 +1526,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/mep-tdep.c b/gdb/mep-tdep.c
index c8a5ecfbe07..69e7fdda597 100644
--- a/gdb/mep-tdep.c
+++ b/gdb/mep-tdep.c
@@ -2264,7 +2264,6 @@  mep_push_dummy_call (struct gdbarch *gdbarch, struct value *function,
 {
   enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
   CORE_ADDR *copy = (CORE_ADDR *) alloca (argc * sizeof (copy[0]));
-  CORE_ADDR func_addr = find_function_addr (function, NULL);
   int i;
 
   /* The number of the next register available to hold an argument.  */
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/nios2-tdep.c b/gdb/nios2-tdep.c
index 91b4381f0b7..c7d5b9f58f6 100644
--- a/gdb/nios2-tdep.c
+++ b/gdb/nios2-tdep.c
@@ -1820,7 +1820,6 @@  nios2_push_dummy_call (struct gdbarch *gdbarch, struct value *function,
   int argnum;
   int len = 0;
   int stack_offset = 0;
-  CORE_ADDR func_addr = find_function_addr (function, NULL);
   enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
 
   /* Set the return address register to point to the entry point of
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 f5d1af822c7..abcac98016d 100644
--- a/gdb/riscv-tdep.c
+++ b/gdb/riscv-tdep.c
@@ -757,8 +757,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>'.  */
@@ -2018,7 +2016,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));
@@ -2204,10 +2201,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/rs6000-lynx178-tdep.c b/gdb/rs6000-lynx178-tdep.c
index 13eed3aeaea..44cd0d013dc 100644
--- a/gdb/rs6000-lynx178-tdep.c
+++ b/gdb/rs6000-lynx178-tdep.c
@@ -44,7 +44,6 @@  rs6000_lynx178_push_dummy_call (struct gdbarch *gdbarch,
   gdb_byte tmp_buffer[50];
   int f_argno = 0;		/* current floating point argno */
   int wordsize = gdbarch_tdep (gdbarch)->wordsize;
-  CORE_ADDR func_addr = find_function_addr (function, NULL);
 
   struct value *arg = 0;
   struct type *type;
diff --git a/gdb/rust-exp.y b/gdb/rust-exp.y
index 256eabe732a..248e558a544 100644
--- a/gdb/rust-exp.y
+++ b/gdb/rust-exp.y
@@ -583,7 +583,6 @@  literal:
 		{ $$ = parser->ast_dliteral ($1); }
 |	STRING
 		{
-		  const struct rust_op *str = parser->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/sparc64-tdep.c b/gdb/sparc64-tdep.c
index 8d96cfc0969..f25f554f753 100644
--- a/gdb/sparc64-tdep.c
+++ b/gdb/sparc64-tdep.c
@@ -461,8 +461,6 @@  adi_examine_command (const char *args, int from_tty)
   if (!adi_available ())
     error (_("No ADI information"));
 
-  pid_t pid = inferior_ptid.pid ();
-  sparc64_adi_info *proc = get_adi_info_proc (pid);
   int cnt = 1;
   const char *p = args;
   if (p && *p == '/')
diff --git a/gdb/stack.c b/gdb/stack.c
index e51c689f437..3da46dd955a 100644
--- a/gdb/stack.c
+++ b/gdb/stack.c
@@ -2629,7 +2629,8 @@  frame_apply_level_command (const char *cmd, int from_tty)
   /* Skip the LEVEL list to find the flags and command args.  */
   while (!levels.finished ())
     {
-      const int level_beg = levels.get_number ();
+      /* Call for effect.  */
+      levels.get_number ();
 
       level_found = true;
       if (levels.in_range ())
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/tic6x-tdep.c b/gdb/tic6x-tdep.c
index efb8b0561b4..b1711bad293 100644
--- a/gdb/tic6x-tdep.c
+++ b/gdb/tic6x-tdep.c
@@ -882,7 +882,6 @@  tic6x_push_dummy_call (struct gdbarch *gdbarch, struct value *function,
   int argnum;
   int stack_offset = 4;
   int references_offset = 4;
-  CORE_ADDR func_addr = find_function_addr (function, NULL);
   enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
   struct type *func_type = value_type (function);
   /* The first arg passed on stack.  Mostly the first 10 args are passed by
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 5050e96fd12..3f722a14389 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;