public inbox for binutils@sourceware.org
 help / color / mirror / Atom feed
* PATCH: Fix read_leb128 in readelf for 64bit host
@ 2004-12-26  0:42 H. J. Lu
  2004-12-27 19:01 ` H. J. Lu
  0 siblings, 1 reply; 5+ messages in thread
From: H. J. Lu @ 2004-12-26  0:42 UTC (permalink / raw)
  To: binutils

read_leb128 in readelf assumes long == int == 32bit. It doesn't work
with 64bit host. Does this patch look right?


H.J.
---
2004-12-25  H.J. Lu  <hongjiu.lu@intel.com>

	* readelf.c (read_leb128): Support 64bit host.

--- binutils/readelf.c.leb	2004-12-10 14:20:22.000000000 -0800
+++ binutils/readelf.c	2004-12-25 16:16:54.615198445 -0800
@@ -6933,7 +6933,7 @@ read_leb128 (unsigned char *data, int *l
 {
   unsigned long int result = 0;
   unsigned int num_read = 0;
-  int shift = 0;
+  unsigned int shift = 0;
   unsigned char byte;
 
   do
@@ -6951,8 +6951,8 @@ read_leb128 (unsigned char *data, int *l
   if (length_return != NULL)
     *length_return = num_read;
 
-  if (sign && (shift < 32) && (byte & 0x40))
-    result |= -1 << shift;
+  if (sign && (shift < 8 * sizeof (result)) && (byte & 0x40))
+    result |= -1L << shift;
 
   return result;
 }

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2004-12-28 20:48 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2004-12-26  0:42 PATCH: Fix read_leb128 in readelf for 64bit host H. J. Lu
2004-12-27 19:01 ` H. J. Lu
2004-12-28 13:15   ` Dave Korn
2004-12-28 14:57     ` Daniel Jacobowitz
2004-12-28 20:48       ` Dave Korn

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).