summaryrefslogtreecommitdiff
path: root/gcc/fortran/dump-parse-tree.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/fortran/dump-parse-tree.c')
-rw-r--r--gcc/fortran/dump-parse-tree.c25
1 files changed, 22 insertions, 3 deletions
diff --git a/gcc/fortran/dump-parse-tree.c b/gcc/fortran/dump-parse-tree.c
index 41b2c88265c..4cff8059b73 100644
--- a/gcc/fortran/dump-parse-tree.c
+++ b/gcc/fortran/dump-parse-tree.c
@@ -66,6 +66,19 @@ void debug (symbol_attribute *attr)
dumpfile = tmp;
}
+void debug (gfc_formal_arglist *formal)
+{
+ FILE *tmp = dumpfile;
+ dumpfile = stderr;
+ for (; formal; formal = formal->next)
+ {
+ fputc ('\n', dumpfile);
+ show_symbol (formal->sym);
+ }
+ fputc ('\n', dumpfile);
+ dumpfile = tmp;
+}
+
void debug (symbol_attribute attr)
{
debug (&attr);
@@ -75,9 +88,15 @@ void debug (gfc_expr *e)
{
FILE *tmp = dumpfile;
dumpfile = stderr;
- show_expr (e);
- fputc (' ', dumpfile);
- show_typespec (&e->ts);
+ if (e != NULL)
+ {
+ show_expr (e);
+ fputc (' ', dumpfile);
+ show_typespec (&e->ts);
+ }
+ else
+ fputs ("() ", dumpfile);
+
fputc ('\n', dumpfile);
dumpfile = tmp;
}