diff options
author | Tobias Burnus <burnus@net-b.de> | 2013-09-16 20:01:59 +0200 |
---|---|---|
committer | Tobias Burnus <burnus@gcc.gnu.org> | 2013-09-16 20:01:59 +0200 |
commit | 0ebdf3ae98f374c2270d92b19d6d3465422fbe4f (patch) | |
tree | 4873887ffd5e7ca0875b3caf0d6c7e56987f0e4a /gcc/fortran | |
parent | a5bd71fa0e4e2b3063896e979f888e1296d60b4e (diff) | |
download | gcc-0ebdf3ae98f374c2270d92b19d6d3465422fbe4f.zip gcc-0ebdf3ae98f374c2270d92b19d6d3465422fbe4f.tar.gz gcc-0ebdf3ae98f374c2270d92b19d6d3465422fbe4f.tar.bz2 |
re PR fortran/58356 (ICE with finalization and type extension)
2013-09-16 Tobias Burnus <burnus@net-b.de>
PR fortran/58356
* class.c (generate_finalization_wrapper): Init proc_tree if
not yet resolved.
2013-09-16 Tobias Burnus <burnus@net-b.de>
PR fortran/58356
* gfortran.dg/finalize_19.f90: New.
From-SVN: r202633
Diffstat (limited to 'gcc/fortran')
-rw-r--r-- | gcc/fortran/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/fortran/class.c | 2 |
2 files changed, 8 insertions, 0 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index 0f73dfe..37c5950 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,5 +1,11 @@ 2013-09-16 Tobias Burnus <burnus@net-b.de> + PR fortran/58356 + * class.c (generate_finalization_wrapper): Init proc_tree if + not yet resolved. + +2013-09-16 Tobias Burnus <burnus@net-b.de> + PR fortran/57697 * resolve.c (generate_component_assignments): Correctly handle the case that the LHS is not allocated. diff --git a/gcc/fortran/class.c b/gcc/fortran/class.c index 629b052..7117e83 100644 --- a/gcc/fortran/class.c +++ b/gcc/fortran/class.c @@ -1881,6 +1881,8 @@ generate_finalization_wrapper (gfc_symbol *derived, gfc_namespace *ns, for (fini = derived->f2k_derived->finalizers; fini; fini = fini->next) { + if (!fini->proc_tree) + fini->proc_tree = gfc_find_sym_in_symtree (fini->proc_sym); if (fini->proc_tree->n.sym->attr.elemental) { fini_elem = fini; |