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.