[binutils-gdb] Cast relcount to unsigned long when comparing with sec->reloc_count

H.J.Lu hjl@sourceware.org
Tue May 2 19:18:00 GMT 2017


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

commit 2ecf0cc317d065cfeb960c61688897351521bce0
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Tue May 2 12:16:26 2017 -0700

    Cast relcount to unsigned long when comparing with sec->reloc_count
    
    The type of relcount is long and the type of sec->reloc_count is
    unsigned int.  On 32-bit hosts, GCC issues an error:
    
    objcopy.c:2144:20: error: comparison between signed and unsigned integer expressions [-Werror=sign-compare]
           if (relcount > sec->reloc_count)
    
    Cast relcount to unsigned long to silence GCC.
    
    	* objcopy.c (merge_gnu_build_notes): Cast relcount to unsigned
    	long when comparing with sec->reloc_count.

Diff:
---
 binutils/ChangeLog | 5 +++++
 binutils/objcopy.c | 2 +-
 2 files changed, 6 insertions(+), 1 deletion(-)

diff --git a/binutils/ChangeLog b/binutils/ChangeLog
index d13dbb6..b3a539a 100644
--- a/binutils/ChangeLog
+++ b/binutils/ChangeLog
@@ -1,3 +1,8 @@
+2017-05-02  H.J. Lu  <hongjiu.lu@intel.com>
+
+	* objcopy.c (merge_gnu_build_notes): Cast relcount to unsigned
+	long when comparing with sec->reloc_count.
+
 2017-05-02  Nick Clifton  <nickc@redhat.com>
 
 	* objcopy.c (merge_gnu_build_notes): Disable merge if there are
diff --git a/binutils/objcopy.c b/binutils/objcopy.c
index 36952ec..ccb5e12 100644
--- a/binutils/objcopy.c
+++ b/binutils/objcopy.c
@@ -2141,7 +2141,7 @@ merge_gnu_build_notes (bfd * abfd, asection * sec, bfd_size_type size, bfd_byte
 	 represent a single external reloc.  Unfortunately the current BFD
 	 API does not handle deleting relocs in such situations very well
 	 and so it is unsafe to proceed.  */
-      if (relcount > sec->reloc_count)
+      if ((unsigned long) relcount > sec->reloc_count)
 	goto done;
 
       /* Eliminate the duplicates.  */



More information about the Binutils-cvs mailing list