2012-07-27 Mikael Morin * 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: