Jan Kratochvil eb6cb2d
Re: [PATCH 04/23] vla: make dynamic fortran arrays functional.
Jan Kratochvil eb6cb2d
https://sourceware.org/ml/gdb-patches/2014-06/msg00570.html
Jan Kratochvil eb6cb2d
Jan Kratochvil cec9297
Index: gdb-7.7.90.20140627/gdb/valarith.c
Jan Kratochvil eb6cb2d
===================================================================
Jan Kratochvil cec9297
--- gdb-7.7.90.20140627.orig/gdb/valarith.c	2014-07-07 20:44:03.136394525 +0200
Jan Kratochvil cec9297
+++ gdb-7.7.90.20140627/gdb/valarith.c	2014-07-07 20:45:41.588536459 +0200
Jan Kratochvil cec9297
@@ -195,10 +195,17 @@ value_subscripted_rvalue (struct value *
Jan Kratochvil eb6cb2d
   struct type *array_type = check_typedef (value_type (array));
Jan Kratochvil eb6cb2d
   struct type *elt_type = check_typedef (TYPE_TARGET_TYPE (array_type));
Jan Kratochvil eb6cb2d
   unsigned int elt_size = TYPE_LENGTH (elt_type);
Jan Kratochvil cec9297
-  unsigned int elt_offs = longest_to_int (index - lowerbound);
Jan Kratochvil eb6cb2d
+  unsigned int elt_offs;
Jan Kratochvil cec9297
   LONGEST elt_stride = TYPE_BYTE_STRIDE (TYPE_INDEX_TYPE (array_type));
Jan Kratochvil eb6cb2d
   struct value *v;
Jan Kratochvil eb6cb2d
 
Jan Kratochvil eb6cb2d
+  if (TYPE_NOT_ASSOCIATED (array_type))
Jan Kratochvil eb6cb2d
+    error (_("no such vector element because not associated"));
Jan Kratochvil eb6cb2d
+  if (TYPE_NOT_ALLOCATED (array_type))
Jan Kratochvil eb6cb2d
+    error (_("no such vector element because not allocated"));
Jan Kratochvil eb6cb2d
+
Jan Kratochvil cec9297
+  elt_offs = longest_to_int (index - lowerbound);
Jan Kratochvil eb6cb2d
+
Jan Kratochvil cec9297
   if (elt_stride > 0)
Jan Kratochvil cec9297
     elt_offs *= elt_stride;
Jan Kratochvil cec9297
   else if (elt_stride < 0)
Jan Kratochvil cec9297
@@ -212,14 +219,7 @@ value_subscripted_rvalue (struct value *
Jan Kratochvil cec9297
 
Jan Kratochvil eb6cb2d
   if (index < lowerbound || (!TYPE_ARRAY_UPPER_BOUND_IS_UNDEFINED (array_type)
Jan Kratochvil eb6cb2d
 			     && elt_offs >= TYPE_LENGTH (array_type)))
Jan Kratochvil eb6cb2d
-    {
Jan Kratochvil eb6cb2d
-      if (TYPE_NOT_ASSOCIATED (array_type))
Jan Kratochvil eb6cb2d
-        error (_("no such vector element because not associated"));
Jan Kratochvil eb6cb2d
-      else if (TYPE_NOT_ALLOCATED (array_type))
Jan Kratochvil eb6cb2d
-        error (_("no such vector element because not allocated"));
Jan Kratochvil eb6cb2d
-      else
Jan Kratochvil eb6cb2d
-        error (_("no such vector element"));
Jan Kratochvil eb6cb2d
-    }
Jan Kratochvil eb6cb2d
+    error (_("no such vector element"));
Jan Kratochvil eb6cb2d
 
Jan Kratochvil eb6cb2d
   if (VALUE_LVAL (array) == lval_memory && value_lazy (array))
Jan Kratochvil eb6cb2d
     v = allocate_value_lazy (elt_type);