summaryrefslogtreecommitdiff
path: root/gcc/fortran/dump-parse-tree.c
diff options
context:
space:
mode:
authorThomas Koenig <tkoenig@gcc.gnu.org>2019-06-16 08:34:31 +0000
committerThomas Koenig <tkoenig@gcc.gnu.org>2019-06-16 08:34:31 +0000
commit2d86d75105f6d2341ffec8bd78b4de972376d424 (patch)
tree68adb4d224ef6a73c5e51a7a005d16bc4710d803 /gcc/fortran/dump-parse-tree.c
parent5767d76f8f1ee56b68e794ccb65a720a8a3581c7 (diff)
downloadgcc-2d86d75105f6d2341ffec8bd78b4de972376d424.tar.gz
dump_parse_tree (debug): Add verison for formal arglist.
2019-06-16 Thomas Koenig <tkoenig@gcc.gnu.org> * dump_parse_tree (debug): Add verison for formal arglist. Do not crash when a gfc_expr is NULL. From-SVN: r272353
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;
}