From f9be282007d4aba65e23d13eef5bec2e44834b88 Mon Sep 17 00:00:00 2001 From: Joel Brobecker Date: Tue, 18 Jan 2011 17:03:57 +0000 Subject: [PATCH] fix printing of Ada wide characters on ppc-aix Same problem as before: We were downcasting the character value from int to unsigned char, which caused an overflow. The reason why we did not see this problem before is probably related to the fact that we're using stabs on AIX and thus characters types are defined as a TYPE_CODE_INT (or TYPE_CODE_RANGE?). gdb/ChangeLog: * ada-valprint.c (ada_print_scalar): Remove unsigned char downcast. (ada_val_print_1): Likewise. --- gdb/ChangeLog | 5 +++++ gdb/ada-valprint.c | 5 ++--- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 4edda80c5c3..41c076bc06c 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,8 @@ +2011-01-18 Joel Brobecker + + * ada-valprint.c (ada_print_scalar): Remove unsigned char downcast. + (ada_val_print_1): Likewise. + 2011-01-14 Joel Brobecker * ada-valprint. (ada_printchar): Use the correct type length diff --git a/gdb/ada-valprint.c b/gdb/ada-valprint.c index c9a8c94628d..cc74a33113a 100644 --- a/gdb/ada-valprint.c +++ b/gdb/ada-valprint.c @@ -417,7 +417,7 @@ ada_print_scalar (struct type *type, LONGEST val, struct ui_file *stream) break; case TYPE_CODE_CHAR: - LA_PRINT_CHAR ((unsigned char) val, type, stream); + LA_PRINT_CHAR (val, type, stream); break; case TYPE_CODE_BOOL: @@ -795,8 +795,7 @@ ada_val_print_1 (struct type *type, const gdb_byte *valaddr0, if (ada_is_character_type (type)) { fputs_filtered (" ", stream); - ada_printchar ((unsigned char) unpack_long (type, valaddr), - type, stream); + ada_printchar (unpack_long (type, valaddr), type, stream); } } return 0; -- 2.39.5