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 e943d8e..68bed0a 100644 --- a/gcc/fortran/trans-array.c +++ b/gcc/fortran/trans-array.c @@ -4529,7 +4529,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; @@ -4555,10 +4555,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; @@ -4567,7 +4566,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; @@ -4644,7 +4643,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. */ |