diff options
author | burnus <burnus@138bc75d-0d04-0410-961f-82ee72b054a4> | 2012-09-03 06:35:59 +0000 |
---|---|---|
committer | burnus <burnus@138bc75d-0d04-0410-961f-82ee72b054a4> | 2012-09-03 06:35:59 +0000 |
commit | 8a96d64282ac534cb597f446f02ac5d0b13249cc (patch) | |
tree | 97423c845762747c432e4c5bc7446781847242d7 /gcc/fortran/dump-parse-tree.c | |
parent | c9fdfd4a360104700dd44da40d44ee3d8575cef7 (diff) |
2012-09-03 Alessandro Fanfarillo <fanfarillo.gcc@gmail.com>
Tobias Burnus <burnus@net-b.de>
PR fortran/37336
* gfortran.h (symbol_attribute): Add artificial.
* module.c (mio_symbol_attribute): Handle attr.artificial
* class.c (gfc_build_class_symbol): Defer creation of the vtab
if the DT has finalizers, mark generated symbols as
attr.artificial.
(has_finalizer_component, finalize_component,
finalization_scalarizer, generate_finalization_wrapper):
New static functions.
(gfc_find_derived_vtab): Add _final component and call
generate_finalization_wrapper.
* dump-parse-tree.c (show_f2k_derived): Use resolved
proc_tree->n.sym rather than unresolved proc_sym.
(show_attr): Handle attr.artificial.
* resolve.c (gfc_resolve_finalizers): Ensure that the vtab
* exists.
(resolve_fl_derived): Resolve finalizers before
generating the vtab.
(resolve_symbol): Also allow assumed-rank arrays with CONTIGUOUS;
skip artificial symbols.
(resolve_fl_derived0): Skip artificial symbols.
2012-09-03 Tobias Burnus <burnus@net-b.de>
PR fortran/51632
* gfortran.dg/coarray_class_1.f90: New.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@190869 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/fortran/dump-parse-tree.c')
-rw-r--r-- | gcc/fortran/dump-parse-tree.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/gcc/fortran/dump-parse-tree.c b/gcc/fortran/dump-parse-tree.c index cb8fab4fe354..9d6f93c5f771 100644 --- a/gcc/fortran/dump-parse-tree.c +++ b/gcc/fortran/dump-parse-tree.c @@ -613,6 +613,8 @@ show_attr (symbol_attribute *attr, const char * module) if (attr->save != SAVE_NONE) fprintf (dumpfile, "%s", gfc_code2string (save_status, attr->save)); + if (attr->artificial) + fputs (" ARTIFICIAL", dumpfile); if (attr->allocatable) fputs (" ALLOCATABLE", dumpfile); if (attr->asynchronous) @@ -788,7 +790,7 @@ show_f2k_derived (gfc_namespace* f2k) for (f = f2k->finalizers; f; f = f->next) { show_indent (); - fprintf (dumpfile, "FINAL %s", f->proc_sym->name); + fprintf (dumpfile, "FINAL %s", f->proc_tree->n.sym->name); } /* Type-bound procedures. */ |