Commit 7c9b8fb9 by Janus Weil

re PR fortran/44213 (ICE when extending abstract type)

2010-05-22  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/44213
	* resolve.c (ensure_not_abstract): Allow abstract types with
	non-abstract ancestors.


2010-05-22  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/44213
	* gfortran.dg/abstract_type_7.f03: New.

From-SVN: r159695
parent 277e2873
2010-05-22 Janus Weil <janus@gcc.gnu.org>
PR fortran/44213
* resolve.c (ensure_not_abstract): Allow abstract types with
non-abstract ancestors.
2010-05-21 Steven Bosscher <steven@gcc.gnu.org> 2010-05-21 Steven Bosscher <steven@gcc.gnu.org>
* trans-const.c: Include realmpfr.h. * trans-const.c: Include realmpfr.h.
......
...@@ -10541,7 +10541,10 @@ ensure_not_abstract (gfc_symbol* sub, gfc_symbol* ancestor) ...@@ -10541,7 +10541,10 @@ ensure_not_abstract (gfc_symbol* sub, gfc_symbol* ancestor)
This is not the most efficient way to do this, but it should be ok and is This is not the most efficient way to do this, but it should be ok and is
clearer than something sophisticated. */ clearer than something sophisticated. */
gcc_assert (ancestor && ancestor->attr.abstract && !sub->attr.abstract); gcc_assert (ancestor && !sub->attr.abstract);
if (!ancestor->attr.abstract)
return SUCCESS;
/* Walk bindings of this ancestor. */ /* Walk bindings of this ancestor. */
if (ancestor->f2k_derived) if (ancestor->f2k_derived)
......
2010-05-22 Janus Weil <janus@gcc.gnu.org>
PR fortran/44213
* gfortran.dg/abstract_type_7.f03: New.
2010-05-21 Jason Merrill <jason@redhat.com> 2010-05-21 Jason Merrill <jason@redhat.com>
* g++.dg/eh/spec11.C: Test cleanup optimization. * g++.dg/eh/spec11.C: Test cleanup optimization.
......
! { dg-do compile }
!
! PR 44213: ICE when extending abstract type
!
! Contributed by Hans-Werner Boschmann <boschmann@tp1.physik.uni-siegen.de>
module ice_module
type :: a_type
end type a_type
type,extends(a_type),abstract :: b_type
end type b_type
type,extends(b_type) :: c_type
end type c_type
end module ice_module
! { dg-final { cleanup-modules "ice_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