This is the mail archive of the binutils@sourceware.org mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Commit: Fix compile time warnings using gcc-7.1.1


Hi Guys,

  I upgraded to Fedora 26 today and a few new compile time warnings
  appeared when building with the new gcc 7.1.1 compiler.  So I am
  checking in the patch below (mainline and 2.29 branch) to fix the
  problems.

Cheers
  Nick

bfd/ChangeLog
2017-07-12  Nick Clifton  <nickc@redhat.com>

	Fix compile time warnings using gcc 7.1.1.
	* elf32-xtensa.c (elf_xtensa_get_plt_section): Increase length of
	plt_name buffer.
	(elf_xtensa_get_gotplt_section): Increase length of got_name
	buffer.
	* mach-o-arm.c (bfd_mach_o_arm_canonicalize_one_reloc): Add a
	default return of FALSE.
	* mach-o-i386.c (bfd_mach_o_i386_canonicalize_one_reloc): Add a
	default return of FALSE.

binutils/ChangeLog
2017-07-12  Nick Clifton  <nickc@redhat.com>

	Fix compile time warnings using gcc 7.1.1.
	* dwarf.c (dwarf_vmatoa_1): Do not pass a NULL string pointer to
	sprintf.
	* srconv.c (walk_tree_type): Initialise the spare field of the
	IT_dty structure.

gas/ChangeLog
2017-07-12  Nick Clifton  <nickc@redhat.com>

	Fix compile time warnings using gcc 7.1.1.
	* config/tc-pru.c (md_assemble): Add continue statement after
	handling 'E' operand character.
	* config/tc-v850.c (md_assemble): Initialise the 'insn' variable.

diff --git a/bfd/elf32-xtensa.c b/bfd/elf32-xtensa.c
index b3ddbf1e24..19a162eebb 100644
--- a/bfd/elf32-xtensa.c
+++ b/bfd/elf32-xtensa.c
@@ -10841,7 +10841,7 @@ static asection *
 elf_xtensa_get_plt_section (struct bfd_link_info *info, int chunk)
 {
   bfd *dynobj;
-  char plt_name[10];
+  char plt_name[17];
 
   if (chunk == 0)
     return elf_hash_table (info)->splt;
@@ -10856,7 +10856,7 @@ static asection *
 elf_xtensa_get_gotplt_section (struct bfd_link_info *info, int chunk)
 {
   bfd *dynobj;
-  char got_name[14];
+  char got_name[21];
 
   if (chunk == 0)
     return elf_hash_table (info)->sgotplt;
diff --git a/bfd/mach-o-arm.c b/bfd/mach-o-arm.c
index e7315225dd..5139f795f2 100644
--- a/bfd/mach-o-arm.c
+++ b/bfd/mach-o-arm.c
@@ -209,8 +212,9 @@ bfd_mach_o_arm_canonicalize_one_reloc (bfd *abfd,
 	      return TRUE;
 	    }
 	  return FALSE;
+
         default:
-          return FALSE;
+          break;
         }
     }
   else
@@ -239,24 +243,23 @@ bfd_mach_o_arm_canonicalize_one_reloc (bfd *abfd,
               return FALSE;
             }
           break;
+
         case BFD_MACH_O_ARM_RELOC_BR24:
 	  if (reloc.r_length == 2 && reloc.r_pcrel == 1)
 	    {
               res->howto = &arm_howto_table[11];
               return TRUE;
 	    }
-	  else
-	    return FALSE;
 	  break;
+
         case BFD_MACH_O_THUMB_RELOC_BR22:
 	  if (reloc.r_length == 2 && reloc.r_pcrel == 1)
 	    {
               res->howto = &arm_howto_table[16];
               return TRUE;
 	    }
-	  else
-	    return FALSE;
 	  break;
+
         case BFD_MACH_O_ARM_RELOC_HALF:
 	  if (reloc.r_pcrel == 0)
 	    switch (reloc.r_length)
@@ -268,7 +271,8 @@ bfd_mach_o_arm_canonicalize_one_reloc (bfd *abfd,
 		res->howto = &arm_howto_table[14];
 		return TRUE;
 	      }
-	  return FALSE;
+	  break;
+
         case BFD_MACH_O_ARM_RELOC_PAIR:
 	  if (res[-1].howto == &arm_howto_table[12]
 	      && reloc.r_length == 0)
@@ -290,11 +294,14 @@ bfd_mach_o_arm_canonicalize_one_reloc (bfd *abfd,
 	      res->address = res[-1].address;
 	      return TRUE;
             }
-          return FALSE;
+	  break;
+
         default:
-          return FALSE;
+	  break;
         }
     }
+
+  return FALSE;
 }
 
 static reloc_howto_type *
diff --git a/bfd/mach-o-i386.c b/bfd/mach-o-i386.c
index b2f02415c3..ce0389e020 100644
--- a/bfd/mach-o-i386.c
+++ b/bfd/mach-o-i386.c
@@ -164,7 +164,7 @@ bfd_mach_o_i386_canonicalize_one_reloc (bfd *abfd,
             }
           return FALSE;
         default:
-          return FALSE;
+	  break;
         }
     }
   else
@@ -192,11 +192,11 @@ bfd_mach_o_i386_canonicalize_one_reloc (bfd *abfd,
             default:
               return FALSE;
             }
-          break;
         default:
-          return FALSE;
+          break;
         }
     }
+  return FALSE;
 }
 
 static bfd_boolean
diff --git a/binutils/dwarf.c b/binutils/dwarf.c
index 386cc17f7c..5f8922eb8a 100644
--- a/binutils/dwarf.c
+++ b/binutils/dwarf.c
@@ -217,7 +217,10 @@ dwarf_vmatoa_1 (const char *fmtch, dwarf_vma value, unsigned num_bytes)
     {
       char fmt[32];
 
-      sprintf (fmt, "%%%s%s", DWARF_VMA_FMT, fmtch);
+      if (fmtch)
+	sprintf (fmt, "%%%s%s", DWARF_VMA_FMT, fmtch);
+      else
+	sprintf (fmt, "%%%s", DWARF_VMA_FMT);
       snprintf (ret, sizeof (buf[0].place), fmt, value);
       return ret;
     }
diff --git a/binutils/srconv.c b/binutils/srconv.c
index 87c503d249..a033bc85e3 100644
--- a/binutils/srconv.c
+++ b/binutils/srconv.c
@@ -874,13 +874,14 @@ static void
 walk_tree_type (struct coff_sfile *sfile, struct coff_symbol *symbol,
 		struct coff_type *type, int nest)
 {
-  if (symbol->type->type == coff_function_type)
-    {
-      struct IT_dty dty;
+  struct IT_dty dty;
 
-      dty.end = 0;
-      dty.neg = 0x1001;
+  dty.spare = 0;
+  dty.end = 0;
+  dty.neg = 0x1001;
 
+  if (symbol->type->type == coff_function_type)
+    {
       sysroff_swap_dty_out (file, &dty);
       walk_tree_type_1 (sfile, symbol, type, nest);
       dty.end = 1;
@@ -906,10 +907,6 @@ walk_tree_type (struct coff_sfile *sfile, struct coff_symbol *symbol,
     }
   else
     {
-      struct IT_dty dty;
-
-      dty.end = 0;
-      dty.neg = 0x1001;
       sysroff_swap_dty_out (file, &dty);
       walk_tree_type_1 (sfile, symbol, type, nest);
       dty.end = 1;
diff --git a/gas/config/tc-pru.c b/gas/config/tc-pru.c
index 53ea7ef2b9..d5aa5a5146 100644
--- a/gas/config/tc-pru.c
+++ b/gas/config/tc-pru.c
@@ -296,9 +296,10 @@ typedef enum
 static PRU_MODE pru_mode = PRU_MODE_ASSEMBLE;
 
 /* This function is used to in self-checking mode
-   to check the assembled instruction
-   opcode should be the assembled opcode, and exp_opcode
+   to check the assembled instruction.
+   OPCODE should be the assembled opcode, and exp_opcode
    the parsed string representing the expected opcode.  */
+
 static void
 pru_check_assembly (unsigned int opcode, const char *exp_opcode)
 {
@@ -1698,6 +1699,8 @@ md_assemble (char *op_str)
 
 	    case 'E':
 	      pru_check_assembly (insn->insn_code, *argtk++);
+	      continue;
+
 	    default:
 	      BAD_CASE (*argp);
 	    }
diff --git a/gas/config/tc-v850.c b/gas/config/tc-v850.c
index 7b5347480a..dd7b54ad28 100644
--- a/gas/config/tc-v850.c
+++ b/gas/config/tc-v850.c
@@ -2298,7 +2298,7 @@ md_assemble (char *str)
   const unsigned char *opindex_ptr;
   int next_opindex;
   int relaxable = 0;
-  unsigned long insn;
+  unsigned long insn = 0;
   unsigned long insn_size;
   char *f = NULL;
   int i;


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]