aboutsummaryrefslogtreecommitdiff
path: root/gcc/fortran/trans-array.c
diff options
context:
space:
mode:
authorMikael Morin <mikael@gcc.gnu.org>2011-10-18 14:53:43 +0000
committerMikael Morin <mikael@gcc.gnu.org>2011-10-18 14:53:43 +0000
commit42ac5ee1287b6c9931a7e67c96f05fffb9b5b022 (patch)
tree63da9138eec8d04646f6c4ec911e766cde100919 /gcc/fortran/trans-array.c
parent700535b75f0df9aa1cabe95da1fcf3df82ad1c01 (diff)
downloadgcc-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.c14
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)