diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index 5ed954a7745..979f28cb985 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,3 +1,11 @@ +2012-08-02 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 + any interface mapping to the offset field. + * gfortran.h (struct gfc_array_ref): Remove the offset field. + 2012-08-02 Janus Weil PR fortran/54147 diff --git a/gcc/fortran/array.c b/gcc/fortran/array.c index 76bd5c3d63d..f23d0bc7888 100644 --- a/gcc/fortran/array.c +++ b/gcc/fortran/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/gcc/fortran/expr.c b/gcc/fortran/expr.c index 3a3ba9a9132..aeb224f1767 100644 --- a/gcc/fortran/expr.c +++ b/gcc/fortran/expr.c @@ -1490,13 +1490,10 @@ find_array_section (gfc_expr *expr, gfc_ref *ref) /* Now clock through the array reference, calculating the index in the source constructor and transferring the elements to the new - constructor. */ + 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/gcc/fortran/gfortran.h b/gcc/fortran/gfortran.h index 8fea23da1c3..b6e29758cf1 100644 --- a/gcc/fortran/gfortran.h +++ b/gcc/fortran/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/gcc/fortran/trans-expr.c b/gcc/fortran/trans-expr.c index 263605aa721..2603995aff0 100644 --- a/gcc/fortran/trans-expr.c +++ b/gcc/fortran/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: