The offset field is never set; this patch removes it.

Regression tested on x86_64-unknown-linux-gnu. OK for trunk?

Mikael

2012-07-27  Mikael Morin  <mik...@gcc.gnu.org>

	* array.c (gfc_copy_array_ref): Don't copy the offset field.
	* expr.c (find_array_section): Ignore the offset field.
	* trans-expr.c (gfc_find_interface_mapping_to_ref): Don't apply
	interface mapping to the offset field.
	* gfortran.h (struct gfc_array_ref): Remove the offset field.

diff --git a/array.c b/array.c
index 76bd5c3..f23d0bc 100644
--- a/array.c
+++ b/array.c
@@ -50,8 +50,6 @@ gfc_copy_array_ref (gfc_array_ref *src)
       dest->stride[i] = gfc_copy_expr (src->stride[i]);
     }
 
-  dest->offset = gfc_copy_expr (src->offset);
-
   return dest;
 }
 
diff --git a/expr.c b/expr.c
index cb5e1c6..74f204b 100644
--- a/expr.c
+++ b/expr.c
@@ -1493,10 +1493,7 @@ find_array_section (gfc_expr *expr, gfc_ref *ref)
      constructor.  */  
   for (idx = 0; idx < (int) mpz_get_si (nelts); idx++)
     {
-      if (ref->u.ar.offset)
-	mpz_set (ptr, ref->u.ar.offset->value.integer);
-      else
-	mpz_init_set_ui (ptr, 0);
+      mpz_init_set_ui (ptr, 0);
 
       incr_ctr = true;
       for (d = 0; d < rank; d++)
diff --git a/gfortran.h b/gfortran.h
index e1f2e3c..0f96772 100644
--- a/gfortran.h
+++ b/gfortran.h
@@ -1515,8 +1515,6 @@ typedef struct gfc_array_ref
     *stride[GFC_MAX_DIMENSIONS];
 
   enum gfc_array_ref_dimen_type dimen_type[GFC_MAX_DIMENSIONS];
-
-  struct gfc_expr *offset;
 }
 gfc_array_ref;
 
diff --git a/trans-expr.c b/trans-expr.c
index 263605a..2603995 100644
--- a/trans-expr.c
+++ b/trans-expr.c
@@ -2806,7 +2806,6 @@ gfc_apply_interface_mapping_to_ref (gfc_interface_mapping * mapping,
 	    gfc_apply_interface_mapping_to_expr (mapping, ref->u.ar.end[n]);
 	    gfc_apply_interface_mapping_to_expr (mapping, ref->u.ar.stride[n]);
 	  }
-	gfc_apply_interface_mapping_to_expr (mapping, ref->u.ar.offset);
 	break;
 
       case REF_COMPONENT:

Reply via email to