From: uweigand Date: Mon, 18 May 2009 13:47:44 +0000 (+0000) Subject: * ada-lang.c (ada_coerce_to_simple_array_type): Reimplement to X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=aae7bb8e2ee94b7a0f81f953f78dcfaf5813e76c;p=pf3gnuchains%2Fpf3gnuchains3x.git * ada-lang.c (ada_coerce_to_simple_array_type): Reimplement to avoid creating a dummy value. --- diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 5e9931b722..578ce18aa8 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,5 +1,10 @@ 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 to extract reference value. diff --git a/gdb/ada-lang.c b/gdb/ada-lang.c index f8d68c1e6c..0725dbdd29 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. */