diff --git a/bfd/elf32-lm32.c b/bfd/elf32-lm32.c
index 4830ab21dfa..64b3edef466 100644
--- a/bfd/elf32-lm32.c
+++ b/bfd/elf32-lm32.c
@@ -2067,7 +2067,7 @@ lm32_elf_size_dynamic_sections (bfd *output_bfd,
       struct weak_symbol_list *list_start = NULL, *list_end = NULL;
       int rgot_weak_count = 0;
       int r32_count = 0;
-      int rgot_count = 0;
+      int rgot_count ATTRIBUTE_UNUSED = 0;
       /* Look for deleted sections.  */
       for (ibfd = info->input_bfds; ibfd != NULL; ibfd = ibfd->link.next)
 	{
diff --git a/bfd/elf32-nds32.c b/bfd/elf32-nds32.c
index 82c20592d6d..35e0302ed74 100644
--- a/bfd/elf32-nds32.c
+++ b/bfd/elf32-nds32.c
@@ -13460,7 +13460,6 @@ elf32_nds32_unify_relax_group (bfd *abfd, asection *asec)
   Elf_Internal_Rela *relocs = NULL;
   enum elf_nds32_reloc_type rtype;
   struct section_id_list_t *node = NULL;
-  int count = 0;
 
   do
     {
@@ -13499,8 +13498,6 @@ elf32_nds32_unify_relax_group (bfd *abfd, asection *asec)
 
 	  /* Change it.  */
 	  rel->r_addend += relax_group_ptr->bias;
-	  /* Debugging count.  */
-	  count++;
 	}
     }
   while (false);
diff --git a/bfd/mmo.c b/bfd/mmo.c
index fd92a346bc7..ddcdd35a15f 100644
--- a/bfd/mmo.c
+++ b/bfd/mmo.c
@@ -1602,7 +1602,7 @@ static bool
 mmo_scan (bfd *abfd)
 {
   unsigned int i;
-  unsigned int lineno = 1;
+  unsigned int lineno ATTRIBUTE_UNUSED = 1;
   bool error = false;
   bfd_vma vma = 0;
   asection *sec = NULL;
diff --git a/binutils/windmc.c b/binutils/windmc.c
index b47da91f1bb..9a22e4991fb 100644
--- a/binutils/windmc.c
+++ b/binutils/windmc.c
@@ -765,7 +765,7 @@ static void
 write_rc (FILE *fp)
 {
   mc_node_lang *n;
-  int i, l;
+  int l;
 
   fprintf (fp,
 	   "/* Do not edit this file manually.\n"
@@ -773,12 +773,10 @@ write_rc (FILE *fp)
   if (! mc_nodes_lang_count)
     return;
   n = NULL;
-  i = 0;
   for (l = 0; l < mc_nodes_lang_count; l++)
     {
       if (n && n->lang == mc_nodes_lang[l]->lang)
 	continue;
-      ++i;
       n = mc_nodes_lang[l];
       fprintf (fp, "\n// Country: %s\n// Language: %s\n#pragma code_page(%u)\n",
 	       n->lang->lang_info.country, n->lang->lang_info.name,
diff --git a/gas/config/tc-riscv.c b/gas/config/tc-riscv.c
index df2e201fb74..2f5ee18e451 100644
--- a/gas/config/tc-riscv.c
+++ b/gas/config/tc-riscv.c
@@ -2303,7 +2303,6 @@ riscv_ip (char *str, struct riscv_cl_insn *ip, expressionS *imm_expr,
   char save_c = 0;
   struct riscv_opcode *insn;
   unsigned int regno;
-  int argnum;
   const struct percent_op_match *p;
   struct riscv_ip_error error;
   error.msg = "unrecognized opcode";
@@ -2341,7 +2340,6 @@ riscv_ip (char *str, struct riscv_cl_insn *ip, expressionS *imm_expr,
       error.msg = _("illegal operands");
       error.missing_ext = NULL;
       create_insn (ip, insn);
-      argnum = 1;
 
       imm_expr->X_op = O_absent;
       *imm_reloc = BFD_RELOC_UNUSED;
@@ -2859,7 +2857,6 @@ riscv_ip (char *str, struct riscv_cl_insn *ip, expressionS *imm_expr,
 	      break; /* end RVV */
 
 	    case ',':
-	      ++argnum;
 	      if (*asarg++ == *oparg)
 		continue;
 	      asarg--;
diff --git a/ld/pe-dll.c b/ld/pe-dll.c
index 92c33f528c8..338e2def83c 100644
--- a/ld/pe-dll.c
+++ b/ld/pe-dll.c
@@ -1510,8 +1510,7 @@ generate_reloc (bfd *abfd, struct bfd_link_info *info)
   int total_relocs = 0;
   int i;
   bfd_vma sec_page = (bfd_vma) -1;
-  bfd_vma page_ptr, page_count;
-  int bi;
+  bfd_vma page_ptr;
   bfd *b;
   struct bfd_section *s;
 
@@ -1525,8 +1524,7 @@ generate_reloc (bfd *abfd, struct bfd_link_info *info)
   reloc_data = xmalloc (total_relocs * sizeof (reloc_data_type));
 
   total_relocs = 0;
-  bi = 0;
-  for (bi = 0, b = info->input_bfds; b; bi++, b = b->link.next)
+  for (b = info->input_bfds; b; b = b->link.next)
     {
       arelent **relocs;
       int relsize, nrelocs;
@@ -1721,7 +1719,6 @@ generate_reloc (bfd *abfd, struct bfd_link_info *info)
   sec_page = (bfd_vma) -1;
   reloc_sz = 0;
   page_ptr = (bfd_vma) -1;
-  page_count = 0;
 
   for (i = 0; i < total_relocs; i++)
     {
@@ -1740,7 +1737,6 @@ generate_reloc (bfd *abfd, struct bfd_link_info *info)
 	  page_ptr = reloc_sz;
 	  reloc_sz += 8;
 	  sec_page = this_page;
-	  page_count = 0;
 	}
 
       bfd_put_16 (abfd, (rva & 0xfff) + (reloc_data[i].type << 12),
@@ -1753,7 +1749,6 @@ generate_reloc (bfd *abfd, struct bfd_link_info *info)
 	  reloc_sz += 2;
 	}
 
-      page_count++;
     }
 
   while (reloc_sz & 3)