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

janus at gcc dot gnu.org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |ASSIGNED
   Last reconfirmed|                            |2012-07-13
         AssignedTo|unassigned at gcc dot       |janus at gcc dot gnu.org
                   |gnu.org                     |
     Ever Confirmed|0                           |1

--- Comment #2 from janus at gcc dot gnu.org 2012-07-13 20:49:50 UTC ---
The error itself should be quite easy to fix. Here is a draft patch (not
regtested yet):


Index: gcc/fortran/resolve.c
===================================================================
--- gcc/fortran/resolve.c    (revision 189470)
+++ gcc/fortran/resolve.c    (working copy)
@@ -10843,7 +10843,8 @@ resolve_fl_procedure (gfc_symbol *sym, int mp_flag
       return FAILURE;
     }
       if (sym->attr.external && sym->attr.function
-      && ((sym->attr.if_source == IFSRC_DECL && !sym->attr.procedure)
+      && ((sym->attr.if_source == IFSRC_DECL && !sym->attr.procedure
+           && !sym->attr.dummy)
           || sym->attr.contained))
     {
       gfc_error ("EXTERNAL attribute conflicts with FUNCTION attribute "



However, there seems to be an additional problem with the locus. Plus, I'm not
sure why the error only occurs with the PROCEDURE statement.

Reply via email to