From 17280b9f0a137dae1dbe2eb817b2d7ba18646cd6 Mon Sep 17 00:00:00 2001 From: Ulrich Weigand Date: Mon, 18 May 2009 13:47:44 +0000 Subject: [PATCH] * ada-lang.c (ada_coerce_to_simple_array_type): Reimplement to avoid creating a dummy value. --- gdb/ChangeLog | 5 +++++ gdb/ada-lang.c | 14 +++++++------- 2 files changed, 12 insertions(+), 7 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 5e9931b7221..578ce18aa81 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,8 @@ +2009-05-18 Ulrich Weigand + + * ada-lang.c (ada_coerce_to_simple_array_type): Reimplement to + avoid creating a dummy value. + 2009-05-18 Ulrich Weigand * p-valprint.c (pascal_val_print): Use extract_typed_address diff --git a/gdb/ada-lang.c b/gdb/ada-lang.c index f8d68c1e6c1..0725dbdd29a 100644 --- a/gdb/ada-lang.c +++ b/gdb/ada-lang.c @@ -1689,13 +1689,13 @@ ada_coerce_to_simple_array (struct value *arr) struct type * ada_coerce_to_simple_array_type (struct type *type) { - struct value *mark = value_mark (); - struct value *dummy = value_from_longest (builtin_type_int32, 0); - struct type *result; - deprecated_set_value_type (dummy, type); - result = ada_type_of_array (dummy, 0); - value_free_to_mark (mark); - return result; + if (ada_is_packed_array_type (type)) + return decode_packed_array_type (type); + + if (ada_is_array_descriptor_type (type)) + return ada_check_typedef (TYPE_TARGET_TYPE (desc_data_type (type))); + + return type; } /* Non-zero iff TYPE represents a standard GNAT packed-array type. */ -- 2.30.2