diff options
Diffstat (limited to 'gcc/fortran/dump-parse-tree.c')
-rw-r--r-- | gcc/fortran/dump-parse-tree.c | 19 |
1 files changed, 17 insertions, 2 deletions
diff --git a/gcc/fortran/dump-parse-tree.c b/gcc/fortran/dump-parse-tree.c index 6c91508..e007a54 100644 --- a/gcc/fortran/dump-parse-tree.c +++ b/gcc/fortran/dump-parse-tree.c @@ -541,13 +541,20 @@ show_expr (gfc_expr *p) case EXPR_FUNCTION: if (p->value.function.name == NULL) { - fprintf (dumpfile, "%s[", p->symtree->n.sym->name); + fprintf (dumpfile, "%s", p->symtree->n.sym->name); + if (is_proc_ptr_comp (p, NULL)) + show_ref (p->ref); + fputc ('[', dumpfile); show_actual_arglist (p->value.function.actual); fputc (']', dumpfile); } else { - fprintf (dumpfile, "%s[[", p->value.function.name); + fprintf (dumpfile, "%s", p->value.function.name); + if (is_proc_ptr_comp (p, NULL)) + show_ref (p->ref); + fputc ('[', dumpfile); + fputc ('[', dumpfile); show_actual_arglist (p->value.function.actual); fputc (']', dumpfile); fputc (']', dumpfile); @@ -653,6 +660,8 @@ show_components (gfc_symbol *sym) show_typespec (&c->ts); if (c->attr.pointer) fputs (" POINTER", dumpfile); + if (c->attr.proc_pointer) + fputs (" PPC", dumpfile); if (c->attr.dimension) fputs (" DIMENSION", dumpfile); fputc (' ', dumpfile); @@ -1212,6 +1221,12 @@ show_code_node (int level, gfc_code *c) show_compcall (c->expr); break; + case EXEC_CALL_PPC: + fputs ("CALL ", dumpfile); + show_expr (c->expr); + show_actual_arglist (c->ext.actual); + break; + case EXEC_RETURN: fputs ("RETURN ", dumpfile); if (c->expr) |