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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@159695
138bc75d-0d04-0410-961f-
82ee72b054a4
+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>
* trans-const.c: Include realmpfr.h.
This is not the most efficient way to do this, but it should be ok and is
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. */
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>
* g++.dg/eh/spec11.C: Test cleanup optimization.
--- /dev/null
+! { 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" } }