diff options
Diffstat (limited to 'gcc/fortran/trans-array.c')
-rw-r--r-- | gcc/fortran/trans-array.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/gcc/fortran/trans-array.c b/gcc/fortran/trans-array.c index eafce793703..0cc048fbc44 100644 --- a/gcc/fortran/trans-array.c +++ b/gcc/fortran/trans-array.c @@ -4465,7 +4465,7 @@ gfc_walk_op_expr (gfc_ss * ss, gfc_expr * expr) /* Reverse a SS chain. */ -static gfc_ss * +gfc_ss * gfc_reverse_ss (gfc_ss * ss) { gfc_ss *next; @@ -4491,10 +4491,9 @@ gfc_reverse_ss (gfc_ss * ss) /* Walk the arguments of an elemental function. */ gfc_ss * -gfc_walk_elemental_function_args (gfc_ss * ss, gfc_expr * expr, +gfc_walk_elemental_function_args (gfc_ss * ss, gfc_actual_arglist *arg, gfc_ss_type type) { - gfc_actual_arglist *arg; int scalar; gfc_ss *head; gfc_ss *tail; @@ -4503,7 +4502,7 @@ gfc_walk_elemental_function_args (gfc_ss * ss, gfc_expr * expr, head = gfc_ss_terminator; tail = NULL; scalar = 1; - for (arg = expr->value.function.actual; arg; arg = arg->next) + for (; arg; arg = arg->next) { if (!arg->expr) continue; @@ -4580,7 +4579,8 @@ gfc_walk_function_expr (gfc_ss * ss, gfc_expr * expr) /* Walk the parameters of an elemental function. For now we always pass by reference. */ if (sym->attr.elemental) - return gfc_walk_elemental_function_args (ss, expr, GFC_SS_REFERENCE); + return gfc_walk_elemental_function_args (ss, expr->value.function.actual, + GFC_SS_REFERENCE); /* Scalar functions are OK as these are evaluated outside the scalarization loop. Pass back and let the caller deal with it. */ |