[Bug fortran/46244] gfc_compare_derived_types is buggy

burnus at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Sat Nov 6 13:00:00 GMT 2010


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46244

--- Comment #9 from Tobias Burnus <burnus at gcc dot gnu.org> 2010-11-06 13:00:27 UTC ---
(In reply to comment #8)
> (In reply to comment #7)
> >       type b
> >               sequence
> >               class(a), pointer :: pa
> >       end type b
> 
> That's invalid per F2008's C436

combined with C405 + 1.3.147.6. Draft patch:

--- a/gcc/fortran/resolve.c
+++ b/gcc/fortran/resolve.c
@@ -11493,7 +11493,8 @@ resolve_fl_derived (gfc_symbol *sym)

       if (sym->attr.sequence)
        {
-         if (c->ts.type == BT_DERIVED && c->ts.u.derived->attr.sequence == 0)
+         if ((c->ts.type == BT_DERIVED && c->ts.u.derived->attr.sequence == 0)
+             || c->ts.type == BT_CLASS)
            {
              gfc_error ("Component %s of SEQUENCE type declared at %L does "
                         "not have the SEQUENCE attribute",



More information about the Gcc-bugs mailing list