Commit 19fe9658 by Tobias Burnus Committed by Tobias Burnus

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
parent 0522a84e
2014-08-17 Tobias Burnus <burnus@net-b.de> 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 * trans-io.c (gfc_build_io_library_fndecls): Fix decl of
IOCALL_SET_NML_VAL. IOCALL_SET_NML_VAL.
(transfer_namelist_element): Use proper int type as argument. (transfer_namelist_element): Use proper int type as argument.
......
...@@ -11416,6 +11416,10 @@ gfc_resolve_finalizers (gfc_symbol* derived, bool *finalizable) ...@@ -11416,6 +11416,10 @@ gfc_resolve_finalizers (gfc_symbol* derived, bool *finalizable)
bool seen_scalar = false; bool seen_scalar = false;
gfc_symbol *vtab; gfc_symbol *vtab;
gfc_component *c; 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 /* Return early when not finalizable. Additionally, ensure that derived-type
components have a their finalizables resolved. */ components have a their finalizables resolved. */
......
2014-08-17 Tobias Burnus <burnus@net-b.de>
* gfortran.dg/finalize_27.f90: New.
2014-08-16 Andrew Pinski <apinski@cavium.com> 2014-08-16 Andrew Pinski <apinski@cavium.com>
* gcc.c-torture/compile/20140816-1.c: New testcase. * gcc.c-torture/compile/20140816-1.c: New testcase.
......
! { 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
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment