Hi Mikael,
- (void) gfc_expr_walker (&fcn, callback_reduction, NULL);
why remove this?
Because it is not needed, as the test case _46 shows. No need
to run this twice, it doesn't get better :-)
It is a leftover from when the callback function returned 1.
gfc_internal_error ("Illegal id in insert_iterator_function");
This duplicated code could probably be merged with
copy_walk_reduction_arg.
I thought about it. The reason why I didn't do it was
because the expr to be wrapped inside the call is different.
Another reason was that I didn't get it right when I tried
this approach.
So, I'd rather leave it as is.
I think callback_reduction's iterator handling
should happen there as well.
Like I said, it is done automatically by the expression
walker.
Thomas