aboutsummaryrefslogtreecommitdiff
path: root/gcc/fortran/resolve.c
diff options
context:
space:
mode:
authorJanus Weil <janus@gcc.gnu.org>2010-05-22 12:21:32 +0200
committerJanus Weil <janus@gcc.gnu.org>2010-05-22 12:21:32 +0200
commit7c9b8fb912cdbac53aab302ab0e6b1b0831036df (patch)
tree16d810c6e5b483bfbb839527ee681b103d9622fc /gcc/fortran/resolve.c
parent277e2873445daf04f771eacf8636ba15671dfeda (diff)
downloadgcc-7c9b8fb912cdbac53aab302ab0e6b1b0831036df.zip
gcc-7c9b8fb912cdbac53aab302ab0e6b1b0831036df.tar.gz
gcc-7c9b8fb912cdbac53aab302ab0e6b1b0831036df.tar.bz2
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
Diffstat (limited to 'gcc/fortran/resolve.c')
-rw-r--r--gcc/fortran/resolve.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/gcc/fortran/resolve.c b/gcc/fortran/resolve.c
index e5a46fa..f08e198 100644
--- a/gcc/fortran/resolve.c
+++ b/gcc/fortran/resolve.c
@@ -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
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)