On 29 May 2017 17:49:30 CEST, Nicolas Koenig <koeni...@student.ethz.ch> wrote: >Hello Dominique, > >mea culpa, their was a bit confusion with the file being open in emacs >and vi at the same time. Attached is the new patch with the #define >removed.
+static int +simplify_io_impl_do (gfc_code **code, int *walk_subtrees, + void *data ATTRIBUTE_UNUSED) +{ + gfc_code **curr, *prev = NULL; + struct do_stack write, first; + bool b = false; + *walk_subtrees = 1; + if (!(*code)->block || ((*code)->block->op != EXEC_WRITE + && (*code)->block->op != EXEC_READ)) + return 0; + + *walk_subtrees = 0; + write.prev = NULL; + write.iter = NULL; + write.code = *code; + + for (curr = &(*code)->block; *curr; curr = &(*curr)->next) + { + if ((*curr)->op == EXEC_DO) + { + first.prev = &write; + first.iter = (*curr)->ext.iterator; + first.code = *curr; + stack_top = &first; It seems indentation is off above. thanks, + traverse_io_block((*curr)->block->next, &b, prev); + stack_top = NULL; + } + prev = *curr; + } + return 0; +}