fix printing of Ada wide characters on ppc-aix
authorJoel Brobecker <brobecker@gnat.com>
Tue, 18 Jan 2011 16:38:59 +0000 (16:38 +0000)
committerJoel Brobecker <brobecker@gnat.com>
Tue, 18 Jan 2011 16:38:59 +0000 (16:38 +0000)
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
gdb/ada-valprint.c

index 10ab67329fbca9b51b8d95e2d4bf5122b1b3690a..1a99d78f02402dd06f2f1063462dbd35752d82a2 100644 (file)
@@ -1,3 +1,8 @@
+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
index ee3761725fb25e8428d7b669364657ea3e8e0bdf..c08daeb4538228c659eeefc716e265d00472c500 100644 (file)
@@ -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;