[binutils-gdb] Let phex and phex_nz handle sizeof_l==1

Tom Tromey tromey@sourceware.org
Mon Mar 7 14:55:55 GMT 2022


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

commit c8b76e1ec346de509dbcc2c6dfc4519c572f7322
Author: Tom Tromey <tromey@adacore.com>
Date:   Thu Feb 3 13:18:25 2022 -0700

    Let phex and phex_nz handle sizeof_l==1
    
    Currently, neither phex nor phex_nz handle sizeof_l==1 -- they let
    this case fall through to the default case.  However, a subsequent
    patch in this series needs this case to work correctly.
    
    I looked at all calls to these functions that pass a 1 for the
    sizeof_l parameter.  The only such case seems to be correct with this
    change.

Diff:
---
 gdbsupport/print-utils.cc | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/gdbsupport/print-utils.cc b/gdbsupport/print-utils.cc
index 0ef8cb829a1..73ff1afda30 100644
--- a/gdbsupport/print-utils.cc
+++ b/gdbsupport/print-utils.cc
@@ -168,6 +168,10 @@ phex (ULONGEST l, int sizeof_l)
       str = get_print_cell ();
       xsnprintf (str, PRINT_CELL_SIZE, "%04x", (unsigned short) (l & 0xffff));
       break;
+    case 1:
+      str = get_print_cell ();
+      xsnprintf (str, PRINT_CELL_SIZE, "%02x", (unsigned short) (l & 0xff));
+      break;
     default:
       str = phex (l, sizeof (l));
       break;
@@ -206,6 +210,10 @@ phex_nz (ULONGEST l, int sizeof_l)
       str = get_print_cell ();
       xsnprintf (str, PRINT_CELL_SIZE, "%x", (unsigned short) (l & 0xffff));
       break;
+    case 1:
+      str = get_print_cell ();
+      xsnprintf (str, PRINT_CELL_SIZE, "%x", (unsigned short) (l & 0xff));
+      break;
     default:
       str = phex_nz (l, sizeof (l));
       break;


More information about the Gdb-cvs mailing list