summaryrefslogtreecommitdiff
path: root/gcc/fortran/dump-parse-tree.c
diff options
context:
space:
mode:
authordomob <domob@138bc75d-0d04-0410-961f-82ee72b054a4>2009-04-24 15:20:23 +0000
committerdomob <domob@138bc75d-0d04-0410-961f-82ee72b054a4>2009-04-24 15:20:23 +0000
commit3323e9b1c788040290adbe78d9ebf3e6ac998084 (patch)
tree6857c66e3f14011e7afd4f510d84a7d7ded9cc88 /gcc/fortran/dump-parse-tree.c
parent80709dc40f08366768b330543933c8e173c6c5d1 (diff)
downloadgcc-3323e9b1c788040290adbe78d9ebf3e6ac998084.tar.gz
2009-04-24 Daniel Kraft <d@domob.eu>
* gfortran.h (gfc_get_typebound_proc): Removed as macro, now a function. (struct gfc_symtree): Moved `typebound' member inside union. (struct gfc_namespace): Add `tb_sym_root' as new symtree to sort out type-bound procedures there. (gfc_get_tbp_symtree): New procedure. * symbol.c (tentative_tbp_list): New global. (gfc_get_namespace): NULL new `tb_sym_root' member. (gfc_new_symtree): Removed initialization of `typebound' member. (gfc_undo_symbols): Process list of tentative tbp's. (gfc_commit_symbols): Ditto. (free_tb_tree): New method. (gfc_free_namespace): Call it. (gfc_get_typebound_proc): New method. (gfc_get_tbp_symtree): New method. (gfc_find_typebound_proc): Adapt to structural changes of gfc_symtree and gfc_namespace with regards to tbp's. * dump-parse-tree.c (show_typebound): Ditto. * primary.c (gfc_match_varspec): Ditto. Don't reference tbp-symbol as it isn't a symbol any longer. * module.c (mio_typebound_symtree): Adapt to changes. (mio_typebound_proc): Ditto, create symtrees using `gfc_get_tbp_symtree' rather than `gfc_get_sym_tree'. (mio_f2k_derived): Ditto. * decl.c (match_procedure_in_type): Ditto. (gfc_match_generic): Ditto. Don't reference tbp-symbol. * resolve.c (check_typebound_override): Adapt to changes. (resolve_typebound_generic): Ditto. (resolve_typebound_procedures): Ditto. (ensure_not_abstract_walker): Ditto. (ensure_not_abstract): Ditto. (resolve_typebound_procedure): Ditto, ignore erraneous symbols (for instance, through removed tentative ones). * gfc-internals.texi (Type-bound procedures): Document changes. 2009-04-24 Daniel Kraft <d@domob.eu> * gfortran.dg/typebound_generic_1.f03: Change so that no error is expected on already erraneous symbol (renamed to fresh one). git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@146733 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/fortran/dump-parse-tree.c')
-rw-r--r--gcc/fortran/dump-parse-tree.c20
1 files changed, 10 insertions, 10 deletions
diff --git a/gcc/fortran/dump-parse-tree.c b/gcc/fortran/dump-parse-tree.c
index 32c97d06b73..6c915084db9 100644
--- a/gcc/fortran/dump-parse-tree.c
+++ b/gcc/fortran/dump-parse-tree.c
@@ -671,40 +671,40 @@ show_components (gfc_symbol *sym)
static void
show_typebound (gfc_symtree* st)
{
- if (!st->typebound)
+ if (!st->n.tb)
return;
show_indent ();
- if (st->typebound->is_generic)
+ if (st->n.tb->is_generic)
fputs ("GENERIC", dumpfile);
else
{
fputs ("PROCEDURE, ", dumpfile);
- if (st->typebound->nopass)
+ if (st->n.tb->nopass)
fputs ("NOPASS", dumpfile);
else
{
- if (st->typebound->pass_arg)
- fprintf (dumpfile, "PASS(%s)", st->typebound->pass_arg);
+ if (st->n.tb->pass_arg)
+ fprintf (dumpfile, "PASS(%s)", st->n.tb->pass_arg);
else
fputs ("PASS", dumpfile);
}
- if (st->typebound->non_overridable)
+ if (st->n.tb->non_overridable)
fputs (", NON_OVERRIDABLE", dumpfile);
}
- if (st->typebound->access == ACCESS_PUBLIC)
+ if (st->n.tb->access == ACCESS_PUBLIC)
fputs (", PUBLIC", dumpfile);
else
fputs (", PRIVATE", dumpfile);
fprintf (dumpfile, " :: %s => ", st->n.sym->name);
- if (st->typebound->is_generic)
+ if (st->n.tb->is_generic)
{
gfc_tbp_generic* g;
- for (g = st->typebound->u.generic; g; g = g->next)
+ for (g = st->n.tb->u.generic; g; g = g->next)
{
fputs (g->specific_st->name, dumpfile);
if (g->next)
@@ -712,7 +712,7 @@ show_typebound (gfc_symtree* st)
}
}
else
- fputs (st->typebound->u.specific->n.sym->name, dumpfile);
+ fputs (st->n.tb->u.specific->n.sym->name, dumpfile);
}
static void