OSDN Git Service

* ada-lang.c (ada_coerce_to_simple_array_type): Reimplement to
authoruweigand <uweigand>
Mon, 18 May 2009 13:47:44 +0000 (13:47 +0000)
committeruweigand <uweigand>
Mon, 18 May 2009 13:47:44 +0000 (13:47 +0000)
avoid creating a dummy value.

gdb/ChangeLog
gdb/ada-lang.c

index 5e9931b..578ce18 100644 (file)
@@ -1,5 +1,10 @@
 2009-05-18  Ulrich Weigand  <uweigand@de.ibm.com>
 
+       * ada-lang.c (ada_coerce_to_simple_array_type): Reimplement to
+       avoid creating a dummy value.
+
+2009-05-18  Ulrich Weigand  <uweigand@de.ibm.com>
+
        * p-valprint.c (pascal_val_print): Use extract_typed_address
        to extract reference value.
 
index f8d68c1..0725dbd 100644 (file)
@@ -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.  */