aboutsummaryrefslogtreecommitdiff
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.c34
1 files changed, 34 insertions, 0 deletions
diff --git a/gcc/fortran/dump-parse-tree.c b/gcc/fortran/dump-parse-tree.c
index da9c541..a9107c1 100644
--- a/gcc/fortran/dump-parse-tree.c
+++ b/gcc/fortran/dump-parse-tree.c
@@ -627,7 +627,12 @@ static void
show_attr (symbol_attribute *attr, const char * module)
{
if (attr->flavor != FL_UNKNOWN)
+ {
+ if (attr->flavor == FL_DERIVED && attr->pdt_template)
+ fputs (" (PDT template", dumpfile);
+ else
fprintf (dumpfile, "(%s ", gfc_code2string (flavors, attr->flavor));
+ }
if (attr->access != ACCESS_UNKNOWN)
fprintf (dumpfile, "%s ", gfc_code2string (access_types, attr->access));
if (attr->proc != PROC_UNKNOWN)
@@ -653,6 +658,10 @@ show_attr (symbol_attribute *attr, const char * module)
fputs (" INTRINSIC", dumpfile);
if (attr->optional)
fputs (" OPTIONAL", dumpfile);
+ if (attr->pdt_kind)
+ fputs (" KIND", dumpfile);
+ if (attr->pdt_len)
+ fputs (" LEN", dumpfile);
if (attr->pointer)
fputs (" POINTER", dumpfile);
if (attr->is_protected)
@@ -724,10 +733,26 @@ show_components (gfc_symbol *sym)
for (c = sym->components; c; c = c->next)
{
+ show_indent ();
fprintf (dumpfile, "(%s ", c->name);
show_typespec (&c->ts);
+ if (c->kind_expr)
+ {
+ fputs (" kind_expr: ", dumpfile);
+ show_expr (c->kind_expr);
+ }
+ if (c->param_list)
+ {
+ fputs ("PDT parameters", dumpfile);
+ show_actual_arglist (c->param_list);
+ }
+
if (c->attr.allocatable)
fputs (" ALLOCATABLE", dumpfile);
+ if (c->attr.pdt_kind)
+ fputs (" KIND", dumpfile);
+ if (c->attr.pdt_len)
+ fputs (" LEN", dumpfile);
if (c->attr.pointer)
fputs (" POINTER", dumpfile);
if (c->attr.proc_pointer)
@@ -935,6 +960,15 @@ show_symbol (gfc_symbol *sym)
fputs ("Formal namespace", dumpfile);
show_namespace (sym->formal_ns);
}
+
+ if (sym->attr.flavor == FL_VARIABLE
+ && sym->param_list)
+ {
+ show_indent ();
+ fputs ("PDT parameters", dumpfile);
+ show_actual_arglist (sym->param_list);
+
+ }
--show_level;
}