This is the mail archive of the binutils-cvs@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]

[binutils-gdb] Fix compile time warnings generated when compiling with clang.


https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=b6518b3871859f9eeb7653bf2f3baaa43fa0a5d0

commit b6518b3871859f9eeb7653bf2f3baaa43fa0a5d0
Author: Nick Clifton <nickc@redhat.com>
Date:   Wed Sep 23 18:05:16 2015 +0100

    Fix compile time warnings generated when compiling with clang.
    
    bfd	* bout.c (b_out_slurp_reloc_table): Cast constant to unsigned in
    	order to avoid problems with left shifting negative values.
    	(abs32code): Likewise.
    	* mach-o.c (FILE_ALIGN): Likewise.
    	* coff-rs6000.c (xcoff_debug_sections): Delete unused static
    	array.
    	* elf32-visium.c (visium_reloc_map): Likewise.
    	* elf32-arm.c (elf32_arm_final_link_relocate): Remove useless
    	calls to abs function.
    	* elf32-frv.c (_frvfdpic_relax_tls_entries): Likewise.
    	* elf32-score.c (score_elf_final_link_relocate): Likewise.
    	* elf32-score7.c (score_elf_final_link_relocate): Likewise.
    	* elf32-i860.c (i860_howto_pc26_reloc): Use multiplication instead
    	of shifting to create a negative mask.
    	* elf32-msp430.c (elf_backend_special_sections): Define.
    	* elfxx-mips.c (got_ofst_reloc_p): Delete unused function.
    	(got_hi16_reloc_p): Delete unused function.
    	* ppcboot.c (ppcboot_bfd_print_private_bfd_data): Fix test of
    	partition name.
    
    gas	* config/tc-ppc.c (insn_validate): Cast PPC_OPSHIFT_INV to an int.
    
    opcode	* ppc.h (PPC_OPSHIFT_INV): Use an unsigned constant when left
    	shifting.
    
    ld	* emultempl/elf32.em (ehdr_start_empty): New static variable.
    	(before_allocation): Use it to initialise ehdr_start_save.
    	* emultempl/pe.em (write_build_id): Remove useless double
    	parenthesis.
    	* emultempl/pep.em (write_build_id): Likewise.
    
    opcodes	* bfin-dis.c (fmtconst): Remove unnecessary call to the abs
    	function.
    	* tic30-dis.c (print_branch): Likewise.
    	* cgen-asm.c (cgen_parse_signed_integer): Cast integer to signed
    	value before left shifting.
    	* fr30-ibld.c (fr30_cgen_extract_operand): Likewise.
    	* hppa-dis.c (print_insn_hppa): Likewise.
    	* mips-dis.c (mips_cp0sel_names_mipsr5900): Delete unused static
    	array.
    	* msp430-dis.c (msp430_singleoperand): Likewise.
    	(msp430_doubleoperand): Likewise.
    	(print_insn_msp430): Likewise.
    	* nds32-asm.c (parse_operand): Likewise.
    	* sh-opc.h (MASK): Likewise.
    	* v850-dis.c (get_operand_value): Likewise.

Diff:
---
 bfd/ChangeLog            | 22 ++++++++++++++++++++++
 bfd/bout.c               |  4 ++--
 bfd/coff-rs6000.c        | 28 ----------------------------
 bfd/elf32-arm.c          | 32 ++++++++++++++++++--------------
 bfd/elf32-frv.c          |  2 +-
 bfd/elf32-i860.c         |  4 ++--
 bfd/elf32-msp430.c       |  3 +++
 bfd/elf32-score.c        |  4 ++--
 bfd/elf32-score7.c       |  4 ++--
 bfd/elf32-visium.c       | 26 --------------------------
 bfd/elfxx-mips.c         | 12 ------------
 bfd/mach-o.c             |  2 +-
 bfd/ppcboot.c            |  2 +-
 gas/ChangeLog            |  4 ++++
 gas/config/tc-ppc.c      |  2 +-
 include/opcode/ChangeLog |  5 +++++
 include/opcode/ppc.h     |  2 +-
 ld/ChangeLog             |  8 ++++++++
 ld/emultempl/elf32.em    |  7 ++++++-
 ld/emultempl/pe.em       |  4 ++--
 ld/emultempl/pep.em      |  4 ++--
 opcodes/ChangeLog        | 18 ++++++++++++++++++
 opcodes/bfin-dis.c       |  2 +-
 opcodes/cgen-asm.c       |  2 +-
 opcodes/fr30-ibld.c      |  2 +-
 opcodes/hppa-dis.c       |  4 ++--
 opcodes/mips-dis.c       | 12 ------------
 opcodes/msp430-dis.c     | 38 +++++++++++++++++++-------------------
 opcodes/nds32-asm.c      |  2 +-
 opcodes/sh-opc.h         |  8 ++++----
 opcodes/tic30-dis.c      |  4 ++--
 opcodes/v850-dis.c       |  2 +-
 32 files changed, 133 insertions(+), 142 deletions(-)

diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index bdae109..c067211 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,5 +1,27 @@
 2015-09-23  Nick Clifton  <nickc@redhat.com>
 
+	* bout.c (b_out_slurp_reloc_table): Cast constant to unsigned in
+	order to avoid problems with left shifting negative values.
+	(abs32code): Likewise.
+	* mach-o.c (FILE_ALIGN): Likewise.
+	* coff-rs6000.c (xcoff_debug_sections): Delete unused static
+	array.
+	* elf32-visium.c (visium_reloc_map): Likewise.
+	* elf32-arm.c (elf32_arm_final_link_relocate): Remove useless
+	calls to abs function.
+	* elf32-frv.c (_frvfdpic_relax_tls_entries): Likewise.
+	* elf32-score.c (score_elf_final_link_relocate): Likewise.
+	* elf32-score7.c (score_elf_final_link_relocate): Likewise.
+	* elf32-i860.c (i860_howto_pc26_reloc): Use multiplication instead
+	of shifting to create a negative mask.
+	* elf32-msp430.c (elf_backend_special_sections): Define.
+	* elfxx-mips.c (got_ofst_reloc_p): Delete unused function.
+	(got_hi16_reloc_p): Delete unused function.
+	* ppcboot.c (ppcboot_bfd_print_private_bfd_data): Fix test of
+	partition name.
+
+2015-09-23  Nick Clifton  <nickc@redhat.com>
+
 	PR binutils/15835
 	* elf-bfd.h (struct elf_section_list): New structure.
 	(struct elf_obj_tdata): Replace symtab_shndx_hdr with
diff --git a/bfd/bout.c b/bfd/bout.c
index f356b96..d6f188b 100644
--- a/bfd/bout.c
+++ b/bfd/bout.c
@@ -783,7 +783,7 @@ b_out_slurp_reloc_table (bfd *abfd, sec_ptr asect, asymbol **symbols)
 	/* Sign-extend symnum from 24 bits to whatever host uses.  */
 	s = symnum;
 	if (s & (1 << 23))
-	  s |= (~0) << 24;
+	  s |= (~0U) << 24;
 
 	cache_ptr->sym_ptr_ptr = (asymbol **)NULL;
 	switch (s)
@@ -1069,7 +1069,7 @@ abs32code (bfd *abfd,
      jump we were going to.  */
   gap = value - (dot - shrink);
 
-  if (-1 << 23 < (long)gap && (long)gap < 1 << 23)
+  if ((long)(-1UL << 23) < (long)gap && (long)gap < 1L << 23)
     {
       /* Change the reloc type from 32bitcode possible 24, to 24bit
 	 possible 32.  */
diff --git a/bfd/coff-rs6000.c b/bfd/coff-rs6000.c
index 95430c3..b7098a1 100644
--- a/bfd/coff-rs6000.c
+++ b/bfd/coff-rs6000.c
@@ -402,34 +402,6 @@ _bfd_xcoff_is_local_label_name (bfd *abfd ATTRIBUTE_UNUSED,
 {
   return FALSE;
 }
-
-static const struct dwarf_debug_section xcoff_debug_sections[] =
-{
-  { ".dwabrev",		NULL },
-  { ".dwarnge",		NULL },
-  { NULL,	NULL }, /* .debug_frame */
-  { ".dwinfo",		NULL },
-  { ".dwline",		NULL },
-  { NULL,	NULL }, /* .debug_loc */
-  { NULL,	NULL }, /* .debug_macinfo */
-  { NULL,	NULL }, /* .debug_macro */
-  { ".dwpbnms",		NULL },
-  { ".dwpbtyp",		NULL },
-  { ".dwrnges",		NULL },
-  { NULL,	NULL }, /* .debug_static_func */
-  { NULL,	NULL }, /* .debug_static_vars */
-  { ".dwstr",	NULL },
-  { NULL,	NULL }, /* .debug_types */
-  /* GNU DWARF 1 extensions */
-  { NULL,	NULL }, /* .debug_sfnames */
-  { NULL,	NULL }, /* .debug_srcinfo */
-  /* SGI/MIPS DWARF 2 extensions */
-  { NULL,	NULL }, /* .debug_funcnames */
-  { NULL,	NULL }, /* .debug_typenames */
-  { NULL,	NULL }, /* .debug_varnames */
-  { NULL,	NULL }, /* .debug_weaknames */
-  { NULL,	NULL },
-};
 
 void
 _bfd_xcoff_swap_sym_in (bfd *abfd, void * ext1, void * in1)
diff --git a/bfd/elf32-arm.c b/bfd/elf32-arm.c
index bd41fd0..aa01a59 100644
--- a/bfd/elf32-arm.c
+++ b/bfd/elf32-arm.c
@@ -8816,7 +8816,7 @@ elf32_arm_final_link_relocate (reloc_howto_type *           howto,
 			  + input_section->output_offset
 			  + rel->r_offset);
 
-	value = abs (relocation);
+	value = relocation;
 
 	if (value >= 0x1000)
 	  return bfd_reloc_overflow;
@@ -8851,7 +8851,7 @@ elf32_arm_final_link_relocate (reloc_howto_type *           howto,
 			  + input_section->output_offset
 			  + rel->r_offset);
 
-	value = abs (relocation);
+	value = relocation;
 
 	/* We do not check for overflow of this reloc.  Although strictly
 	   speaking this is incorrect, it appears to be necessary in order
@@ -8888,7 +8888,7 @@ elf32_arm_final_link_relocate (reloc_howto_type *           howto,
 			  + input_section->output_offset
 			  + rel->r_offset);
 
-	value = abs (relocation);
+	value = relocation;
 
 	if (value >= 0x1000)
 	  return bfd_reloc_overflow;
@@ -10125,8 +10125,8 @@ elf32_arm_final_link_relocate (reloc_howto_type *           howto,
 
 	/* Calculate the value of the relevant G_n, in encoded
 	   constant-with-rotation format.  */
-	g_n = calculate_group_reloc_mask (abs (signed_value), group,
-					  &residual);
+	g_n = calculate_group_reloc_mask (signed_value < 0 ? - signed_value : signed_value,
+					  group, &residual);
 
 	/* Check for overflow if required.  */
 	if ((r_type == R_ARM_ALU_PC_G0
@@ -10139,7 +10139,8 @@ elf32_arm_final_link_relocate (reloc_howto_type *           howto,
 	    (*_bfd_error_handler)
 	      (_("%B(%A+0x%lx): Overflow whilst splitting 0x%lx for group relocation %s"),
 	      input_bfd, input_section,
-	      (long) rel->r_offset, abs (signed_value), howto->name);
+	       (long) rel->r_offset, signed_value < 0 ? - signed_value : signed_value,
+	       howto->name);
 	    return bfd_reloc_overflow;
 	  }
 
@@ -10219,15 +10220,16 @@ elf32_arm_final_link_relocate (reloc_howto_type *           howto,
 
 	/* Calculate the value of the relevant G_{n-1} to obtain
 	   the residual at that stage.  */
-	calculate_group_reloc_mask (abs (signed_value), group - 1, &residual);
+	calculate_group_reloc_mask (signed_value < 0 ? - signed_value : signed_value,
+				    group - 1, &residual);
 
 	/* Check for overflow.  */
 	if (residual >= 0x1000)
 	  {
 	    (*_bfd_error_handler)
 	      (_("%B(%A+0x%lx): Overflow whilst splitting 0x%lx for group relocation %s"),
-	      input_bfd, input_section,
-	      (long) rel->r_offset, abs (signed_value), howto->name);
+	       input_bfd, input_section,
+	       (long) rel->r_offset, labs (signed_value), howto->name);
 	    return bfd_reloc_overflow;
 	  }
 
@@ -10303,15 +10305,16 @@ elf32_arm_final_link_relocate (reloc_howto_type *           howto,
 
 	/* Calculate the value of the relevant G_{n-1} to obtain
 	   the residual at that stage.  */
-	calculate_group_reloc_mask (abs (signed_value), group - 1, &residual);
+	calculate_group_reloc_mask (signed_value < 0 ? - signed_value : signed_value,
+				    group - 1, &residual);
 
 	/* Check for overflow.  */
 	if (residual >= 0x100)
 	  {
 	    (*_bfd_error_handler)
 	      (_("%B(%A+0x%lx): Overflow whilst splitting 0x%lx for group relocation %s"),
-	      input_bfd, input_section,
-	      (long) rel->r_offset, abs (signed_value), howto->name);
+	       input_bfd, input_section,
+	       (long) rel->r_offset, labs (signed_value), howto->name);
 	    return bfd_reloc_overflow;
 	  }
 
@@ -10387,7 +10390,8 @@ elf32_arm_final_link_relocate (reloc_howto_type *           howto,
 
 	/* Calculate the value of the relevant G_{n-1} to obtain
 	   the residual at that stage.  */
-	calculate_group_reloc_mask (abs (signed_value), group - 1, &residual);
+	calculate_group_reloc_mask (signed_value < 0 ? - signed_value : signed_value,
+				    group - 1, &residual);
 
 	/* Check for overflow.  (The absolute value to go in the place must be
 	   divisible by four and, after having been divided by four, must
@@ -10397,7 +10401,7 @@ elf32_arm_final_link_relocate (reloc_howto_type *           howto,
 	    (*_bfd_error_handler)
 	      (_("%B(%A+0x%lx): Overflow whilst splitting 0x%lx for group relocation %s"),
 	      input_bfd, input_section,
-	      (long) rel->r_offset, abs (signed_value), howto->name);
+	      (long) rel->r_offset, labs (signed_value), howto->name);
 	    return bfd_reloc_overflow;
 	  }
 
diff --git a/bfd/elf32-frv.c b/bfd/elf32-frv.c
index 1dd2e8c..cd37856 100644
--- a/bfd/elf32-frv.c
+++ b/bfd/elf32-frv.c
@@ -4640,7 +4640,7 @@ _frvfdpic_relax_tls_entries (struct frvfdpic_relocs_info *entry,
 			    + 32768) < (bfd_vma)65536))
 	  || (entry->symndx != -1
 	      && (elf_hash_table (dinfo->info)->tls_sec->size
-		  + abs (entry->addend) < 32768 + FRVFDPIC_TLS_BIAS))))
+		  + entry->addend < 32768 + FRVFDPIC_TLS_BIAS))))
     {
       if (! changed)
 	{
diff --git a/bfd/elf32-i860.c b/bfd/elf32-i860.c
index 8577f58..f3c7210 100644
--- a/bfd/elf32-i860.c
+++ b/bfd/elf32-i860.c
@@ -74,7 +74,7 @@ i860_howto_pc26_reloc (bfd *abfd ATTRIBUTE_UNUSED,
 
   /* Check for target out of range.  */
   if ((bfd_signed_vma)relocation > (0x3ffffff << 2)
-      || (bfd_signed_vma)relocation < (-0x4000000 << 2))
+      || (bfd_signed_vma)relocation < (-0x4000000 * 4))
     return bfd_reloc_outofrange;
 
   addr = (bfd_byte *) data + reloc_entry->address;
@@ -137,7 +137,7 @@ i860_howto_pc16_reloc (bfd *abfd,
 
   /* Check for target out of range.  */
   if ((bfd_signed_vma)relocation > (0x7fff << 2)
-      || (bfd_signed_vma)relocation < (-0x8000 << 2))
+      || (bfd_signed_vma)relocation < (-0x8000 * 4))
     return bfd_reloc_outofrange;
 
   addr = (bfd_byte *) data + reloc_entry->address;
diff --git a/bfd/elf32-msp430.c b/bfd/elf32-msp430.c
index 8e87b67..e77565e 100644
--- a/bfd/elf32-msp430.c
+++ b/bfd/elf32-msp430.c
@@ -2629,4 +2629,7 @@ static const struct bfd_elf_special_section msp430_ti_elf_special_sections[] =
   { NULL, 0,                                0, 0,                      0 }
 };
 
+#undef  elf_backend_special_sections
+#define elf_backend_special_sections 		msp430_ti_elf_special_sections
+
 #include "elf32-target.h"
diff --git a/bfd/elf32-score.c b/bfd/elf32-score.c
index ce9c377..1d558c0 100644
--- a/bfd/elf32-score.c
+++ b/bfd/elf32-score.c
@@ -2165,7 +2165,7 @@ score_elf_final_link_relocate (reloc_howto_type *howto,
       if ((offset & 0x1000000) != 0)
         offset |= 0xfe000000;
       value += offset;
-      abs_value = abs (value - rel_addr);
+      abs_value = value - rel_addr;
       if ((abs_value & 0xfe000000) != 0)
         return bfd_reloc_overflow;
       addend = (addend & ~howto->src_mask)
@@ -2241,7 +2241,7 @@ score_elf_final_link_relocate (reloc_howto_type *howto,
       if ((offset & 0x800) != 0)        /* Offset is negative.  */
         offset |= 0xfffff000;
       value += offset;
-      abs_value = abs (value - rel_addr);
+      abs_value = value - rel_addr;
       if ((abs_value & 0xfffff000) != 0)
         return bfd_reloc_overflow;
       addend = (addend & ~howto->src_mask) | (value & howto->src_mask);
diff --git a/bfd/elf32-score7.c b/bfd/elf32-score7.c
index b0e75bb..5adf9f4 100644
--- a/bfd/elf32-score7.c
+++ b/bfd/elf32-score7.c
@@ -2065,7 +2065,7 @@ score_elf_final_link_relocate (reloc_howto_type *howto,
       if ((offset & 0x1000000) != 0)
         offset |= 0xfe000000;
       value += offset;
-      abs_value = abs (value - rel_addr);
+      abs_value = value - rel_addr;
       if ((abs_value & 0xfe000000) != 0)
         return bfd_reloc_overflow;
       addend = (addend & ~howto->src_mask)
@@ -2095,7 +2095,7 @@ score_elf_final_link_relocate (reloc_howto_type *howto,
       if ((offset & 0x800) != 0)        /* Offset is negative.  */
         offset |= 0xfffff000;
       value += offset;
-      abs_value = abs (value - rel_addr);
+      abs_value = value - rel_addr;
       if ((abs_value & 0xfffff000) != 0)
         return bfd_reloc_overflow;
       addend = (addend & ~howto->src_mask) | (value & howto->src_mask);
diff --git a/bfd/elf32-visium.c b/bfd/elf32-visium.c
index 637d72b..52267c3 100644
--- a/bfd/elf32-visium.c
+++ b/bfd/elf32-visium.c
@@ -276,32 +276,6 @@ static reloc_howto_type visium_elf_vtentry_howto =
 	 0,			   /* dst_mask */
 	 FALSE);		   /* pcrel_offset */
 
-/* Map BFD reloc types to VISIUM ELF reloc types.  */
-struct visium_reloc_map
-{
-  bfd_reloc_code_real_type bfd_reloc_val;
-  unsigned int visium_reloc_val;
-};
-
-static const struct visium_reloc_map visium_reloc_map[] = {
-  {BFD_RELOC_NONE, 		R_VISIUM_NONE},
-  {BFD_RELOC_8, 		R_VISIUM_8},
-  {BFD_RELOC_16,		R_VISIUM_16},
-  {BFD_RELOC_32, 		R_VISIUM_32},
-  {BFD_RELOC_8_PCREL,		R_VISIUM_8_PCREL},
-  {BFD_RELOC_16_PCREL,		R_VISIUM_16_PCREL},
-  {BFD_RELOC_32_PCREL,		R_VISIUM_32_PCREL},
-  {BFD_RELOC_VISIUM_REL16,	R_VISIUM_PC16},
-  {BFD_RELOC_VISIUM_HI16,	R_VISIUM_HI16},
-  {BFD_RELOC_VISIUM_LO16,	R_VISIUM_LO16},
-  {BFD_RELOC_VISIUM_IM16,	R_VISIUM_IM16},
-  {BFD_RELOC_VISIUM_HI16_PCREL,	R_VISIUM_HI16_PCREL},
-  {BFD_RELOC_VISIUM_LO16_PCREL,	R_VISIUM_LO16_PCREL},
-  {BFD_RELOC_VISIUM_IM16_PCREL,	R_VISIUM_IM16_PCREL},
-  {BFD_RELOC_VTABLE_INHERIT,	R_VISIUM_GNU_VTINHERIT},
-  {BFD_RELOC_VTABLE_ENTRY,	R_VISIUM_GNU_VTENTRY},
-};
-
 /* Return the parity bit for INSN shifted to its final position.  */
 
 static bfd_vma
diff --git a/bfd/elfxx-mips.c b/bfd/elfxx-mips.c
index 4689b21..12d7a03 100644
--- a/bfd/elfxx-mips.c
+++ b/bfd/elfxx-mips.c
@@ -2157,18 +2157,6 @@ got_page_reloc_p (unsigned int r_type)
 }
 
 static inline bfd_boolean
-got_ofst_reloc_p (unsigned int r_type)
-{
-  return r_type == R_MIPS_GOT_OFST || r_type == R_MICROMIPS_GOT_OFST;
-}
-
-static inline bfd_boolean
-got_hi16_reloc_p (unsigned int r_type)
-{
-  return r_type == R_MIPS_GOT_HI16 || r_type == R_MICROMIPS_GOT_HI16;
-}
-
-static inline bfd_boolean
 got_lo16_reloc_p (unsigned int r_type)
 {
   return r_type == R_MIPS_GOT_LO16 || r_type == R_MICROMIPS_GOT_LO16;
diff --git a/bfd/mach-o.c b/bfd/mach-o.c
index e6cbe23..5b122c5 100644
--- a/bfd/mach-o.c
+++ b/bfd/mach-o.c
@@ -35,7 +35,7 @@
 #define bfd_mach_o_mkobject bfd_mach_o_gen_mkobject
 
 #define FILE_ALIGN(off, algn) \
-  (((off) + ((file_ptr) 1 << (algn)) - 1) & ((file_ptr) -1 << (algn)))
+  (((off) + ((file_ptr) 1 << (algn)) - 1) & ((file_ptr) -1U << (algn)))
 
 static bfd_boolean
 bfd_mach_o_read_dyld_content (bfd *abfd, bfd_mach_o_dyld_info_command *cmd);
diff --git a/bfd/ppcboot.c b/bfd/ppcboot.c
index 12fad62..c3fb4fe 100644
--- a/bfd/ppcboot.c
+++ b/bfd/ppcboot.c
@@ -402,7 +402,7 @@ ppcboot_bfd_print_private_bfd_data (bfd *abfd, void * farg)
   if (tdata->header.os_id)
     fprintf (f, "OS_ID               = 0x%.2x\n", tdata->header.os_id);
 
-  if (tdata->header.partition_name)
+  if (tdata->header.partition_name[0])
     fprintf (f, _("Partition name      = \"%s\"\n"), tdata->header.partition_name);
 
   for (i = 0; i < 4; i++)
diff --git a/gas/ChangeLog b/gas/ChangeLog
index fe1ed74..606dcf0 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,3 +1,7 @@
+2015-09-23  Nick Clifton  <nickc@redhat.com>
+
+	* config/tc-ppc.c (insn_validate): Cast PPC_OPSHIFT_INV to an int.
+
 2015-09-22  Nick Clifton  <nickc@redhat.com>
 
 	* config/tc-rx.c (nop_7): Recode using MAX.
diff --git a/gas/config/tc-ppc.c b/gas/config/tc-ppc.c
index 6e48f7a..b6b4412 100644
--- a/gas/config/tc-ppc.c
+++ b/gas/config/tc-ppc.c
@@ -1457,7 +1457,7 @@ insn_validate (const struct powerpc_opcode *op)
       else
         {
 	  const struct powerpc_operand *operand = &powerpc_operands[*o];
-	  if (operand->shift != PPC_OPSHIFT_INV)
+	  if (operand->shift != (int) PPC_OPSHIFT_INV)
 	    {
 	      unsigned long mask;
 
diff --git a/include/opcode/ChangeLog b/include/opcode/ChangeLog
index d81b604..44fc32c 100644
--- a/include/opcode/ChangeLog
+++ b/include/opcode/ChangeLog
@@ -1,3 +1,8 @@
+2015-09-23  Nick Clifton  <nickc@redhat.com>
+
+	* ppc.h (PPC_OPSHIFT_INV): Use an unsigned constant when left
+	shifting.
+
 2015-09-22  Nick Clifton  <nickc@redhat.com>
 
 	* rx.h (enum RX_Size): Add RX_Bad_Size entry.
diff --git a/include/opcode/ppc.h b/include/opcode/ppc.h
index 6106dec..8f87e68 100644
--- a/include/opcode/ppc.h
+++ b/include/opcode/ppc.h
@@ -286,7 +286,7 @@ extern const unsigned int num_powerpc_operands;
 /* Use with the shift field of a struct powerpc_operand to indicate
      that BITM and SHIFT cannot be used to determine where the operand
      goes in the insn.  */
-#define PPC_OPSHIFT_INV (-1 << 31)
+#define PPC_OPSHIFT_INV (-1U << 31)
 
 /* Values defined for the flags field of a struct powerpc_operand.  */
 
diff --git a/ld/ChangeLog b/ld/ChangeLog
index 93a852a..3b69e31 100644
--- a/ld/ChangeLog
+++ b/ld/ChangeLog
@@ -1,3 +1,11 @@
+2015-09-23  Nick Clifton  <nickc@redhat.com>
+
+	* emultempl/elf32.em (ehdr_start_empty): New static variable.
+	(before_allocation): Use it to initialise ehdr_start_save.
+	* emultempl/pe.em (write_build_id): Remove useless double
+	parenthesis.
+	* emultempl/pep.em (write_build_id): Likewise.
+
 2015-09-22  H.J. Lu  <hongjiu.lu@intel.com>
 
 	* emultempl/alphaelf.em (alpha_after_parse): Call
diff --git a/ld/emultempl/elf32.em b/ld/emultempl/elf32.em
index b7ddca3..ea6d48c 100644
--- a/ld/emultempl/elf32.em
+++ b/ld/emultempl/elf32.em
@@ -1449,6 +1449,11 @@ gld${EMULATION_NAME}_append_to_separated_string (char **to, char *op_arg)
     }
 }
 
+#if defined(__GNUC__) && GCC_VERSION < 4006
+  /* Work around a GCC uninitialized warning bug fixed in GCC 4.6.  */
+static struct bfd_link_hash_entry ehdr_start_empty;
+#endif
+
 /* This is called after the sections have been attached to output
    sections, but before any sizes or addresses have been set.  */
 
@@ -1461,7 +1466,7 @@ gld${EMULATION_NAME}_before_allocation (void)
   struct elf_link_hash_entry *ehdr_start = NULL;
 #if defined(__GNUC__) && GCC_VERSION < 4006
   /* Work around a GCC uninitialized warning bug fixed in GCC 4.6.  */
-  struct bfd_link_hash_entry ehdr_start_save = ehdr_start_save;
+  struct bfd_link_hash_entry ehdr_start_save = ehdr_start_empty;
 #else
   struct bfd_link_hash_entry ehdr_start_save;
 #endif
diff --git a/ld/emultempl/pe.em b/ld/emultempl/pe.em
index 72e2f11..04a7f5c 100644
--- a/ld/emultempl/pe.em
+++ b/ld/emultempl/pe.em
@@ -1312,7 +1312,7 @@ write_build_id (bfd *abfd)
       struct bfd_link_order *l = NULL;
       for (l = asec->map_head.link_order; l != NULL; l = l->next)
         {
-          if ((l->type == bfd_indirect_link_order))
+          if (l->type == bfd_indirect_link_order)
             {
               if (l->u.indirect.section == t->build_id.sec)
                 {
@@ -1364,7 +1364,7 @@ write_build_id (bfd *abfd)
   if (bfd_seek (abfd, asec->filepos + link_order->offset, SEEK_SET) != 0)
     return 0;
 
-  if ((bfd_bwrite (contents, size, abfd) != size))
+  if (bfd_bwrite (contents, size, abfd) != size)
     return 0;
 
   /* Construct the CodeView record.  */
diff --git a/ld/emultempl/pep.em b/ld/emultempl/pep.em
index c82e496..0b740c3 100644
--- a/ld/emultempl/pep.em
+++ b/ld/emultempl/pep.em
@@ -1276,7 +1276,7 @@ write_build_id (bfd *abfd)
       struct bfd_link_order *l = NULL;
       for (l = asec->map_head.link_order; l != NULL; l = l->next)
         {
-          if ((l->type == bfd_indirect_link_order))
+          if (l->type == bfd_indirect_link_order)
             {
               if (l->u.indirect.section == t->build_id.sec)
                 {
@@ -1328,7 +1328,7 @@ write_build_id (bfd *abfd)
   if (bfd_seek (abfd, asec->filepos + link_order->offset, SEEK_SET) != 0)
     return 0;
 
-  if ((bfd_bwrite (contents, size, abfd) != size))
+  if (bfd_bwrite (contents, size, abfd) != size)
     return 0;
 
   /* Construct the CodeView record.  */
diff --git a/opcodes/ChangeLog b/opcodes/ChangeLog
index 942cdcd..b098299 100644
--- a/opcodes/ChangeLog
+++ b/opcodes/ChangeLog
@@ -1,3 +1,21 @@
+2015-09-23  Nick Clifton  <nickc@redhat.com>
+
+	* bfin-dis.c (fmtconst): Remove unnecessary call to the abs
+	function.
+	* tic30-dis.c (print_branch): Likewise.
+	* cgen-asm.c (cgen_parse_signed_integer): Cast integer to signed
+	value before left shifting.
+	* fr30-ibld.c (fr30_cgen_extract_operand): Likewise.
+	* hppa-dis.c (print_insn_hppa): Likewise.
+	* mips-dis.c (mips_cp0sel_names_mipsr5900): Delete unused static
+	array.
+	* msp430-dis.c (msp430_singleoperand): Likewise.
+	(msp430_doubleoperand): Likewise.
+	(print_insn_msp430): Likewise.
+	* nds32-asm.c (parse_operand): Likewise.
+	* sh-opc.h (MASK): Likewise.
+	* v850-dis.c (get_operand_value): Likewise.
+
 2015-09-22  Nick Clifton  <nickc@redhat.com>
 
 	* rx-decode.opc (bwl): Use RX_Bad_Size.
diff --git a/opcodes/bfin-dis.c b/opcodes/bfin-dis.c
index bf2052e..54fac22 100644
--- a/opcodes/bfin-dis.c
+++ b/opcodes/bfin-dis.c
@@ -167,7 +167,7 @@ fmtconst (const_forms_t cf, TIword x, bfd_vma pc, disassemble_info *outf)
   else
     {
       if (constant_formats[cf].issigned && x < 0)
-	sprintf (buf, "-0x%x", abs (x));
+	sprintf (buf, "-0x%lx", (unsigned long)(- x));
       else
 	sprintf (buf, "0x%lx", (unsigned long) x);
     }
diff --git a/opcodes/cgen-asm.c b/opcodes/cgen-asm.c
index f4f81d7..69b9be8 100644
--- a/opcodes/cgen-asm.c
+++ b/opcodes/cgen-asm.c
@@ -280,7 +280,7 @@ cgen_parse_signed_integer (CGEN_CPU_DESC cd,
 	  && value > 0
 	  && (value & 0x80000000)
 	  && ((value >> 31) == 1))
-	value |= -1 << 31;
+	value |= ((bfd_vma) -1) << 31;
 
       *valuep = value;
     }
diff --git a/opcodes/fr30-ibld.c b/opcodes/fr30-ibld.c
index 177a12b..ed6ecd4 100644
--- a/opcodes/fr30-ibld.c
+++ b/opcodes/fr30-ibld.c
@@ -874,7 +874,7 @@ fr30_cgen_extract_operand (CGEN_CPU_DESC cd,
       {
         long value;
         length = extract_normal (cd, ex_info, insn_value, 0, 0, 8, 4, 16, total_length, pc, & value);
-        value = ((value) | (((-1) << (4))));
+        value = ((value) | (((-1UL) << (4))));
         fields->f_m4 = value;
       }
       break;
diff --git a/opcodes/hppa-dis.c b/opcodes/hppa-dis.c
index 4be0f3c..8562952 100644
--- a/opcodes/hppa-dis.c
+++ b/opcodes/hppa-dis.c
@@ -1103,7 +1103,7 @@ print_insn_hppa (bfd_vma memaddr, disassemble_info *info)
 		    int disp;
 
 		    if (sign)
-		      disp = (-1 << 10) | imm10;
+		      disp = (-1U << 10) | imm10;
 		    else
 		      disp = imm10;
 
@@ -1119,7 +1119,7 @@ print_insn_hppa (bfd_vma memaddr, disassemble_info *info)
 		    int disp;
 
 		    if (sign)
-		      disp = (-1 << 11) | imm11;
+		      disp = (-1U << 11) | imm11;
 		    else
 		      disp = imm11;
 
diff --git a/opcodes/mips-dis.c b/opcodes/mips-dis.c
index d1573c0..8200920 100644
--- a/opcodes/mips-dis.c
+++ b/opcodes/mips-dis.c
@@ -157,18 +157,6 @@ static const char * const mips_cp0_names_r5900[32] =
   "c0_taglo",     "c0_taghi",     "c0_errorepc",  "$31"
 };
 
-static const struct mips_cp0sel_name mips_cp0sel_names_mipsr5900[] =
-{
-  { 24, 2, "c0_iab"			},
-  { 24, 3, "c0_iabm"		},
-  { 24, 4, "c0_dab"			},
-  { 24, 5, "c0_dabm"		},
-  { 24, 6, "c0_dvb"			},
-  { 24, 7, "c0_dvbm"		},
-  { 25, 1, "c0_perfcnt,1"	},
-  { 25, 2, "c0_perfcnt,2"	}
-};
-
 static const char * const mips_cp0_names_mips3264[32] =
 {
   "c0_index",     "c0_random",    "c0_entrylo0",  "c0_entrylo1",
diff --git a/opcodes/msp430-dis.c b/opcodes/msp430-dis.c
index a398ca4..ec8b6dc 100644
--- a/opcodes/msp430-dis.c
+++ b/opcodes/msp430-dis.c
@@ -229,10 +229,10 @@ msp430_singleoperand (disassemble_info *info,
 		{
 		  dst |= extended_dst << 16;
 		  if (dst & 0x80000)
-		    dst |= -1 << 20;
+		    dst |= -1U << 20;
 		}
 	      else if (dst & 0x8000)
-		dst |= -1 << 16;
+		dst |= -1U << 16;
 	      sprintf (op, "%d(r%d)", dst, regd);
 	    }
 	}
@@ -273,7 +273,7 @@ msp430_singleoperand (disassemble_info *info,
 		{
 		  dst |= extended_dst << 16;
 		  if (dst & 0x80000)
-		    dst |= -1 << 20;
+		    dst |= -1U << 20;
 		  sprintf (op, "#%d", dst);
 		  if (dst > 9 || dst < 0)
 		    sprintf (comm, "#0x%05x", dst);
@@ -328,10 +328,10 @@ msp430_singleoperand (disassemble_info *info,
 		{
 		  dst |= extended_dst << 16;
 		  if (dst & 0x80000)
-		    dst |= -1 << 20;
+		    dst |= -1U << 20;
 		}
 	      else if (dst & 0x8000)
-		dst |= -1 << 16;
+		dst |= -1U << 16;
 	      sprintf (op, "%d(r%d)", dst, regd);
 	      if (dst > 9 || dst < 0)
 		sprintf (comm, "%05x", dst);
@@ -431,7 +431,7 @@ msp430_doubleoperand (disassemble_info *info,
 		{
 		  dst |= extended_dst << 16;
 		  if (dst & 0x80000)
-		    dst |= -1 << 20;
+		    dst |= -1U << 20;
 		  sprintf (op1, "0x%05x", dst & 0xfffff);
 		  sprintf (comm1, "PC rel. 0x%05lx",
 			   (long)((addr + 2 + dst) & 0xfffff));
@@ -462,10 +462,10 @@ msp430_doubleoperand (disassemble_info *info,
 		{
 		  dst |= extended_dst << 16;
 		  if (dst & 0x80000)
-		    dst |= -1 << 20;
+		    dst |= -1U << 20;
 		}
 	      else if (dst & 0x8000)
-		dst |= -1 << 16;
+		dst |= -1U << 16;
 	      cmd_len += 4;
 	      *cycles = 6;
 	      sprintf (op1, "%d(r%d)", dst, regd);
@@ -523,7 +523,7 @@ msp430_doubleoperand (disassemble_info *info,
 	    {
 	      dst |= extended_src << 16;
 	      if (dst & 0x80000)
-		dst |= -1 << 20;
+		dst |= -1U << 20;
 	      sprintf (op1, "#%d", dst);
 	      if (dst > 9 || dst < 0)
 		sprintf (comm1, "0x%05x", dst & 0xfffff);
@@ -547,7 +547,7 @@ msp430_doubleoperand (disassemble_info *info,
 	    {
 	      dst |= extended_src << 16;
 	      if (dst & 0x80000)
-		dst |= -1 << 20;
+		dst |= -1U << 20;
 	      sprintf (op1, "0x%05x", dst & 0xfffff);
 	      sprintf (comm1, "PC rel. 0x%05lx",
 		       (long) ((addr + 2 + dst) & 0xfffff));
@@ -584,10 +584,10 @@ msp430_doubleoperand (disassemble_info *info,
 	    {
 	      dst |= extended_src << 16;
 	      if (dst & 0x80000)
-		dst |= -1 << 20;
+		dst |= -1U << 20;
 	    }
 	  else if (dst & 0x8000)
-	    dst |= -1 << 16;
+	    dst |= -1U << 16;
 	  sprintf (op1, "%d(r%d)", dst, regs);
 	  if (dst > 9 || dst < -9)
 	    sprintf (comm1, "0x%05x", dst);
@@ -629,7 +629,7 @@ msp430_doubleoperand (disassemble_info *info,
 	    {
 	      dst |= extended_dst << 16;
 	      if (dst & 0x80000)
-		dst |= -1 << 20;
+		dst |= -1U << 20;
 	      sprintf (op2, "0x%05x", dst & 0xfffff);
 	      sprintf (comm2, "PC rel. 0x%05lx",
 		       (long)((addr + cmd_len + dst) & 0xfffff));
@@ -653,14 +653,14 @@ msp430_doubleoperand (disassemble_info *info,
 	  dst = msp430dis_opcode (addr + cmd_len, info);
 	  cmd_len += 2;
 	  if (dst & 0x8000)
-	    dst |= -1 << 16;
+	    dst |= -1U << 16;
 	  if (dst > 9 || dst < 0)
 	    sprintf (comm2, "0x%04x", PS (dst));
 	  if (extension_word)
 	    {
 	      dst |= extended_dst << 16;
 	      if (dst & 0x80000)
-		dst |= -1 << 20;
+		dst |= -1U << 20;
 	      if (dst > 9 || dst < 0)
 		sprintf (comm2, "0x%05x", dst & 0xfffff);
 	    }
@@ -759,7 +759,7 @@ msp430_branchinstr (disassemble_info *info,
 	  dst = msp430dis_opcode (addr + 2, info);
 	  cmd_len += 2;
 	  if (dst & 0x8000)
-	    dst |= -1 << 16;
+	    dst |= -1U << 16;
 	  sprintf (op1, "%d(r%d)", dst, regs);
 	}
     }
@@ -1013,7 +1013,7 @@ print_insn_msp430 (bfd_vma addr, disassemble_info *info)
 		  reg = n;
 		  n = msp430dis_opcode (addr + 2, info);
 		  if (n & 0x8000)
-		    n |= -1 << 16;
+		    n |= -1U << 16;
 		  sprintf (op1, "%d(r%d)", n, reg);
 		  if (n > 9 || n < 0)
 		    {
@@ -1040,7 +1040,7 @@ print_insn_msp430 (bfd_vma addr, disassemble_info *info)
 		  sprintf (op1, "r%d", n);
 		  n = msp430dis_opcode (addr + 2, info);
 		  if (n & 0x8000)
-		    n |= -1 << 16;
+		    n |= -1U << 16;
 		  sprintf (op2, "%d(r%d)", n, reg);
 		  if (n > 9 || n < 0)
 		    {
@@ -1057,7 +1057,7 @@ print_insn_msp430 (bfd_vma addr, disassemble_info *info)
 		  n <<= 16;
 		  n |= msp430dis_opcode (addr + 2, info);
 		  if (n & 0x80000)
-		    n |= -1 << 20;
+		    n |= -1U << 20;
 		  sprintf (op1, "#%d", n);
 		  if (n > 9 || n < 0)
 		    sprintf (comm1, "0x%05x", n);
diff --git a/opcodes/nds32-asm.c b/opcodes/nds32-asm.c
index 406cc7c..d9f8766 100644
--- a/opcodes/nds32-asm.c
+++ b/opcodes/nds32-asm.c
@@ -2086,7 +2086,7 @@ done:
     {
       /* Sign-ext the value.  */
       if (((value >> 32) == 0) && (value & 0x80000000))
-	value |= (int64_t) -1 << 31;
+	value |= (int64_t) -1U << 31;
 
 
       /* Shift the value to positive domain.  */
diff --git a/opcodes/sh-opc.h b/opcodes/sh-opc.h
index 70ed889..5863aa9 100644
--- a/opcodes/sh-opc.h
+++ b/opcodes/sh-opc.h
@@ -201,10 +201,10 @@ typedef enum
 sh_dsp_reg_nums;
 
 /* Return a mask with bits LO to HI (inclusive) set.  */
-#define MASK(LO,HI)  (  LO < 1   ? ((1 << (HI + 1)) - 1) \
-		      : HI > 30  ? (-1 << LO) \
-		      : LO == HI ? (1 << LO) \
-		      :            (((1 << (HI + 1)) - 1) & (-1 << LO)))
+#define MASK(LO,HI)  (  LO < 1   ? ((1U << (HI + 1)) - 1) \
+		      : HI > 30  ? (-1U << LO)	 \
+		      : LO == HI ? (1U << LO) \
+		      :            (((1U << (HI + 1)) - 1) & (-1U << LO)))
 
 #define arch_sh1_base	    (1 << 0)
 #define arch_sh2_base	    (1 << 1)
diff --git a/opcodes/tic30-dis.c b/opcodes/tic30-dis.c
index 9077434..623feff 100644
--- a/opcodes/tic30-dis.c
+++ b/opcodes/tic30-dis.c
@@ -669,9 +669,9 @@ print_branch (disassemble_info *info,
       if (address == 0)
 	info->fprintf_func (info->stream, " <%s>", sym->name);
       else
-	info->fprintf_func (info->stream, " <%s %c %d>", sym->name,
+	info->fprintf_func (info->stream, " <%s %c %lu>", sym->name,
 			    ((short) address < 0) ? '-' : '+',
-			    abs (address));
+			    address);
     }
   return 1;
 }
diff --git a/opcodes/v850-dis.c b/opcodes/v850-dis.c
index d10f3e0..0c50e51 100644
--- a/opcodes/v850-dis.c
+++ b/opcodes/v850-dis.c
@@ -152,7 +152,7 @@ get_operand_value (const struct v850_operand *operand,
 	  if (operand->flags & V850E_IMMEDIATE16HI)
 	    value <<= 16;
 	  else if (value & 0x8000)
-	    value |= (-1L << 16);
+	    value |= (-1UL << 16);
 
 	  return value;
 	}


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