From d67c8954d06292260bb70f95a566b9ba4ba632ef Mon Sep 17 00:00:00 2001 From: Andrew C Aitchison Date: Tue, 9 Sep 2025 12:06:42 +0200 Subject: Correct -Ue output for nm, objdump and readelf ..., like PR33360 does for strings. Signed-off-by: Andrew C Aitchison --- binutils/nm.c | 4 ++-- binutils/objdump.c | 4 ++-- binutils/readelf.c | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/binutils/nm.c b/binutils/nm.c index c3d118a..4ea5c11 100644 --- a/binutils/nm.c +++ b/binutils/nm.c @@ -566,8 +566,8 @@ display_utf8 (const unsigned char * in, char * out, unsigned int * consumed) case 4: out += sprintf (out, "\\u%02x%02x%02x", - ((in[0] & 0x07) << 6) | ((in[1] & 0x3c) >> 2), - ((in[1] & 0x03) << 6) | ((in[2] & 0x3c) >> 2), + ((in[0] & 0x07) << 2) | ((in[1] & 0x30) >> 4), + ((in[1] & 0x0f) << 4) | ((in[2] & 0x3c) >> 2), ((in[2] & 0x03) << 6) | ((in[3] & 0x3f))); break; default: diff --git a/binutils/objdump.c b/binutils/objdump.c index ee8823d..513f616 100644 --- a/binutils/objdump.c +++ b/binutils/objdump.c @@ -659,8 +659,8 @@ display_utf8 (const unsigned char * in, char * out, unsigned int * consumed) case 4: out += sprintf (out, "\\u%02x%02x%02x", - ((in[0] & 0x07) << 6) | ((in[1] & 0x3c) >> 2), - ((in[1] & 0x03) << 6) | ((in[2] & 0x3c) >> 2), + ((in[0] & 0x07) << 2) | ((in[1] & 0x30) >> 4), + ((in[1] & 0x0f) << 4) | ((in[2] & 0x3c) >> 2), ((in[2] & 0x03) << 6) | ((in[3] & 0x3f))); break; default: diff --git a/binutils/readelf.c b/binutils/readelf.c index 10f8177..8162cbb 100644 --- a/binutils/readelf.c +++ b/binutils/readelf.c @@ -848,8 +848,8 @@ print_symbol_name (signed int width, const char * symbol) if (width_remaining < 8) break; printf ("\\u%02x%02x%02x", - ((bytes[0] & 0x07) << 6) | ((bytes[1] & 0x3c) >> 2), - ((bytes[1] & 0x03) << 6) | ((bytes[2] & 0x3c) >> 2), + ((bytes[0] & 0x07) << 2) | ((bytes[1] & 0x30) >> 4), + ((bytes[1] & 0x0f) << 4) | ((bytes[2] & 0x3c) >> 2), ((bytes[2] & 0x03) << 6) | (bytes[3] & 0x3f)); break; -- cgit v1.1