Fix TARGET_CHAR_BIT/HOST_CHAR_BIT confusion in gmp-utils.c
authorJoel Brobecker <brobecker@adacore.com>
Sat, 5 Dec 2020 08:03:48 +0000 (03:03 -0500)
committerJoel Brobecker <brobecker@adacore.com>
Sat, 5 Dec 2020 08:03:48 +0000 (03:03 -0500)
In a couple of gdb_mpz methods, we are computing the number of
bits in a gdb::array_view of gdb_byte. Since gdb_byte is defined
using a host-side type (see common-types.h), the number of bits
in a gdb_byte should be HOST_CHAR_BIT, not TARGET_CHAR_BIT.

gdb/ChangeLog:

        * gmp-utils.c (gdb_mpz::read): Use HOST_CHAR_BIT instead of
        TARGET_CHAR_BIT.
        (gdb_mpz::write): Likewise.

gdb/ChangeLog
gdb/gmp-utils.c

index 8252c71452b063cee7ba7da2ffd051f527580da8..fd9599205642d2da4222294fd8ef60194e17753c 100644 (file)
@@ -1,3 +1,9 @@
+2020-12-05  Joel Brobecker  <brobecker@adacore.com>
+
+       * gmp-utils.c (gdb_mpz::read): Use HOST_CHAR_BIT instead of
+       TARGET_CHAR_BIT.
+       (gdb_mpz::write): Likewise.
+
 2020-12-04  Simon Marchi  <simon.marchi@efficios.com>
 
        * amd64-linux-tdep.c (amd64_linux_init_abi): Pass 2 as the
index 799410836e8b5bd8cea1b96752714ff937661f40..e3a33333d50b5fd419215bb06f64ac3265b5d493 100644 (file)
@@ -56,7 +56,7 @@ gdb_mpz::read (gdb::array_view<const gdb_byte> buf, enum bfd_endian byte_order,
         was in fact negative, we need to adjust VAL accordingly.  */
       gdb_mpz max;
 
-      mpz_ui_pow_ui (max.val, 2, buf.size () * TARGET_CHAR_BIT - 1);
+      mpz_ui_pow_ui (max.val, 2, buf.size () * HOST_CHAR_BIT - 1);
       if (mpz_cmp (val, max.val) >= 0)
        mpz_submul_ui (val, max.val, 2);
     }
@@ -77,7 +77,7 @@ gdb_mpz::write (gdb::array_view<gdb_byte> buf, enum bfd_endian byte_order,
         would be the same as our negative value.  */
       gdb_mpz neg_offset;
 
-      mpz_ui_pow_ui (neg_offset.val, 2, buf.size () * TARGET_CHAR_BIT);
+      mpz_ui_pow_ui (neg_offset.val, 2, buf.size () * HOST_CHAR_BIT);
       mpz_add (exported_val.val, exported_val.val, neg_offset.val);
     }