resolve.c (gfc_resolve_finalizers): Ensure that parents are resolved first.

2014-08-17  Tobias Burnus  <burnus@net-b.de>

        * resolve.c (gfc_resolve_finalizers): Ensure that parents are
        resolved first.

2014-08-17  Tobias Burnus  <burnus@net-b.de>

        * gfortran.dg/finalize_27.f90: New.

From-SVN: r214076
This commit is contained in:
Tobias Burnus 2014-08-17 18:42:19 +02:00 committed by Tobias Burnus
parent 0522a84e51
commit 19fe965886
4 changed files with 38 additions and 0 deletions

View File

@ -1,3 +1,8 @@
2014-08-17 Tobias Burnus <burnus@net-b.de>
* resolve.c (gfc_resolve_finalizers): Ensure that parents are
resolved first.
2014-08-17 Tobias Burnus <burnus@net-b.de>
* trans-io.c (gfc_build_io_library_fndecls): Fix decl of

View File

@ -11416,6 +11416,10 @@ gfc_resolve_finalizers (gfc_symbol* derived, bool *finalizable)
bool seen_scalar = false;
gfc_symbol *vtab;
gfc_component *c;
gfc_symbol *parent = gfc_get_derived_super_type (derived);
if (parent)
gfc_resolve_finalizers (parent, finalizable);
/* Return early when not finalizable. Additionally, ensure that derived-type
components have a their finalizables resolved. */

View File

@ -1,3 +1,7 @@
2014-08-17 Tobias Burnus <burnus@net-b.de>
* gfortran.dg/finalize_27.f90: New.
2014-08-16 Andrew Pinski <apinski@cavium.com>
* gcc.c-torture/compile/20140816-1.c: New testcase.

View File

@ -0,0 +1,25 @@
! { dg-do compile }
!
! Was ICEing before
!
! Contributed by Reinhold Bader
!
module mod_fin_04
implicit none
type :: p_vec
contains
final :: delete
end type p_vec
type, extends(p_vec) :: bar
contains
final :: del2
end type bar
contains
subroutine delete(this)
type(p_vec) :: this
end subroutine delete
subroutine del2(this)
type(bar) :: this
end subroutine del2
end module