Rewrite leb.h:read_3_bytes
authorTom Tromey <tromey@adacore.com>
Wed, 4 Nov 2020 15:21:36 +0000 (08:21 -0700)
committerTom Tromey <tromey@adacore.com>
Wed, 4 Nov 2020 15:22:05 +0000 (08:22 -0700)
read_3_bytes assumes little-endian data, but in fact it depends on the
BFD.  This patch rewrites this function to use bfd_get_24 instead.

2020-11-04  Tom Tromey  <tromey@adacore.com>

* dwarf2/leb.h (read_3_bytes): Use bfd_get_24.

gdb/ChangeLog
gdb/dwarf2/leb.h

index 373e1527fc7a64bc5452720a210816253b3f7591..188bb1e8539bd0b2ce7a5feac5a48f9bb1e86f7b 100644 (file)
@@ -1,3 +1,7 @@
+2020-11-04  Tom Tromey  <tromey@adacore.com>
+
+       * dwarf2/leb.h (read_3_bytes): Use bfd_get_24.
+
 2020-11-02  Tom Tromey  <tromey@adacore.com>
 
        * Makefile.in (ALL_64_TARGET_OBS): Add amd64-ravenscar-thread.o.
index f312fc261ee8cc44c9ba138f85019ea7cb36177e..d76a1f933fc71754c591fd686e60a0b2f5218464 100644 (file)
@@ -57,14 +57,7 @@ read_2_signed_bytes (bfd *abfd, const gdb_byte *buf)
 static inline unsigned int
 read_3_bytes (bfd *abfd, const gdb_byte *buf)
 {
-  unsigned int result = 0;
-  for (int i = 0; i < 3; ++i)
-    {
-      unsigned char byte = bfd_get_8 (abfd, buf);
-      buf++;
-      result |= ((unsigned int) byte << (i * 8));
-    }
-  return result;
+  return bfd_get_24 (abfd, buf);
 }
 
 static inline unsigned int