diff options
author | Mikael Morin <mikael@gcc.gnu.org> | 2011-10-18 14:53:43 +0000 |
---|---|---|
committer | Mikael Morin <mikael@gcc.gnu.org> | 2011-10-18 14:53:43 +0000 |
commit | 42ac5ee1287b6c9931a7e67c96f05fffb9b5b022 (patch) | |
tree | 63da9138eec8d04646f6c4ec911e766cde100919 /gcc/fortran/trans-array.c | |
parent | 700535b75f0df9aa1cabe95da1fcf3df82ad1c01 (diff) | |
download | gcc-42ac5ee1287b6c9931a7e67c96f05fffb9b5b022.zip gcc-42ac5ee1287b6c9931a7e67c96f05fffb9b5b022.tar.gz gcc-42ac5ee1287b6c9931a7e67c96f05fffb9b5b022.tar.bz2 |
trans-array.h (gfc_walk_array_ref): New prototype.
* trans-array.h (gfc_walk_array_ref): New prototype.
* trans-array.c (gfc_walk_array_ref): New function, containing
all but the beginning of gfc_walk_variable_expr's code.
(gfc_walk_variable_expr): Use gfc_walk_array_ref.
From-SVN: r180144
Diffstat (limited to 'gcc/fortran/trans-array.c')
-rw-r--r-- | gcc/fortran/trans-array.c | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/gcc/fortran/trans-array.c b/gcc/fortran/trans-array.c index 06a81f1d..89528b4 100644 --- a/gcc/fortran/trans-array.c +++ b/gcc/fortran/trans-array.c @@ -7603,14 +7603,22 @@ static gfc_ss * gfc_walk_variable_expr (gfc_ss * ss, gfc_expr * expr) { gfc_ref *ref; - gfc_array_ref *ar; - gfc_ss *newss; - int n; for (ref = expr->ref; ref; ref = ref->next) if (ref->type == REF_ARRAY && ref->u.ar.type != AR_ELEMENT) break; + return gfc_walk_array_ref (ss, expr, ref); +} + + +gfc_ss * +gfc_walk_array_ref (gfc_ss * ss, gfc_expr * expr, gfc_ref * ref) +{ + gfc_array_ref *ar; + gfc_ss *newss; + int n; + for (; ref; ref = ref->next) { if (ref->type == REF_SUBSTRING) |