aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoel Brobecker <brobecker@gnat.com>2011-01-18 16:38:59 +0000
committerJoel Brobecker <brobecker@gnat.com>2011-01-18 16:38:59 +0000
commit10d44370412c8e79458800f13004173f1d30c74e (patch)
treeb44a55ea5c816e0cd40aba44dd27c9e33037d434
parente3acb1155ba584a440ac0914d97e2884c9189324 (diff)
downloadfsf-binutils-gdb-10d44370412c8e79458800f13004173f1d30c74e.zip
fsf-binutils-gdb-10d44370412c8e79458800f13004173f1d30c74e.tar.gz
fsf-binutils-gdb-10d44370412c8e79458800f13004173f1d30c74e.tar.bz2
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.
-rw-r--r--gdb/ChangeLog5
-rw-r--r--gdb/ada-valprint.c5
2 files changed, 7 insertions, 3 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 10ab673..1a99d78 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,5 +1,10 @@
2011-01-18 Joel Brobecker <brobecker@adacore.com>
+ * ada-valprint.c (ada_print_scalar): Remove unsigned char downcast.
+ (ada_val_print_1): Likewise.
+
+2011-01-18 Joel Brobecker <brobecker@adacore.com>
+
* rs6000-tdep.c (rs6000_skip_prologue): Make sure that the prologue
upper limit address is not greater than the function end address
when the upper limit could not be computed using the debugging
diff --git a/gdb/ada-valprint.c b/gdb/ada-valprint.c
index ee37617..c08daeb 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:
@@ -801,8 +801,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;