Hello world, I have committed a few small fixes for -fdump-fortran-original and friends.
Since there was interest on c.l.f from somebdoy who actually wanted to use the dump for something useful, I have also clarified in the docs that this is something that is not guaranteed to work between releases. Regards Thomas 2017-10-08 Thomas Koenig <tkoe...@gcc.gnu.org> * dump_prase_tree (show_symbol): Output list of variables in NAMELIST. (show_code_node): Add new line for ELSE and END DO for DO CONCURRENT. * invoke.texi: Document that the output of -fdump-fortran-original, -fdump-fortran-optimized and -fdump-parse-tree is unsable and may lead to ICEs.
Index: dump-parse-tree.c =================================================================== --- dump-parse-tree.c (Revision 253381) +++ dump-parse-tree.c (Arbeitskopie) @@ -967,8 +967,17 @@ show_symbol (gfc_symbol *sym) show_indent (); fputs ("PDT parameters", dumpfile); show_actual_arglist (sym->param_list); + } + if (sym->attr.flavor == FL_NAMELIST) + { + gfc_namelist *nl; + show_indent (); + fputs ("variables : ", dumpfile); + for (nl = sym->namelist; nl; nl = nl->next) + fprintf (dumpfile, " %s",nl->sym->name); } + --show_level; } @@ -1979,8 +1988,8 @@ show_code_node (int level, gfc_code *c) d = d->block; for (; d; d = d->block) { + fputs("\n", dumpfile); code_indent (level, 0); - if (d->expr1 == NULL) fputs ("ELSE", dumpfile); else @@ -2170,9 +2179,12 @@ show_code_node (int level, gfc_code *c) fputc (',', dumpfile); } show_expr (c->expr1); + ++show_level; show_code (level + 1, c->block->next); + --show_level; code_indent (level, c->label1); + show_indent (); fputs ("END DO", dumpfile); break; Index: invoke.texi =================================================================== --- invoke.texi (Revision 253377) +++ invoke.texi (Arbeitskopie) @@ -1120,20 +1120,28 @@ either your program or the GNU Fortran compiler. @item -fdump-fortran-original @opindex @code{fdump-fortran-original} Output the internal parse tree after translating the source program -into internal representation. Only really useful for debugging the -GNU Fortran compiler itself. +into internal representation. This option is mostly useful for +debugging the GNU Fortran compiler itself. The output generated by +this option might change between releases. This option may also +generate internal compiler errors for features which have only +recently been added. @item -fdump-fortran-optimized @opindex @code{fdump-fortran-optimized} -Output the parse tree after front-end optimization. Only really -useful for debugging the GNU Fortran compiler itself. +Output the parse tree after front-end optimization. Mostly useful for +debugging the GNU Fortran compiler itself. The output generated by +this option might change between releases. This option may also +generate internal compiler errors for features which have only +recently been added. @item -fdump-parse-tree @opindex @code{fdump-parse-tree} Output the internal parse tree after translating the source program -into internal representation. Only really useful for debugging the -GNU Fortran compiler itself. This option is deprecated; use -@code{-fdump-fortran-original} instead. +into internal representation. Mostly useful for debugging the GNU +Fortran compiler itself. The output generated by this option might +change between releases. This option may also generate internal +compiler errors for features which have only recently been added. This +option is deprecated; use @code{-fdump-fortran-original} instead. @item -ffpe-trap=@var{list} @opindex @code{ffpe-trap=}@var{list}