aboutsummaryrefslogtreecommitdiff
path: root/gdb/ada-valprint.c
diff options
context:
space:
mode:
authorUlrich Weigand <uweigand@de.ibm.com>2009-05-18 13:51:52 +0000
committerUlrich Weigand <uweigand@de.ibm.com>2009-05-18 13:51:52 +0000
commitaaa88a990dbfc9c2d1f271a6d80c6080d87594a4 (patch)
tree9b6faab72ea5611691f7c697f82875befabd69fd /gdb/ada-valprint.c
parent17280b9f0a137dae1dbe2eb817b2d7ba18646cd6 (diff)
downloadgdb-aaa88a990dbfc9c2d1f271a6d80c6080d87594a4.zip
gdb-aaa88a990dbfc9c2d1f271a6d80c6080d87594a4.tar.gz
gdb-aaa88a990dbfc9c2d1f271a6d80c6080d87594a4.tar.bz2
* ada-valprint.c (ada_val_print_1): Use val_print_string to print
result of ada_vax_float_print_function inferior call.
Diffstat (limited to 'gdb/ada-valprint.c')
-rw-r--r--gdb/ada-valprint.c20
1 files changed, 4 insertions, 16 deletions
diff --git a/gdb/ada-valprint.c b/gdb/ada-valprint.c
index 3da58ea..1db677d 100644
--- a/gdb/ada-valprint.c
+++ b/gdb/ada-valprint.c
@@ -739,22 +739,10 @@ ada_val_print_1 (struct type *type, const gdb_byte *valaddr0,
struct value *func = ada_vax_float_print_function (type);
if (func != 0)
{
- static struct type *parray_of_char = NULL;
- struct value *printable_val;
-
- if (parray_of_char == NULL)
- parray_of_char =
- make_pointer_type
- (create_array_type
- (NULL, builtin_type_true_char,
- create_range_type (NULL, builtin_type_int32, 0, 32)), NULL);
-
- printable_val =
- value_ind (value_cast (parray_of_char,
- call_function_by_hand (func, 1,
- &val)));
-
- fprintf_filtered (stream, "%s", value_contents (printable_val));
+ CORE_ADDR addr;
+ addr = value_as_address (call_function_by_hand (func, 1, &val));
+ val_print_string (builtin_type_true_char,
+ addr, -1, stream, options);
return 0;
}
/* No special printing function. Do as best we can. */