------- Comment #3 from tkoenig at gcc dot gnu dot org 2009-01-06 13:05 -------
This appears to resolve the issue(s):
Index: interface.c
===================================================================
--- interface.c (revision 143076)
+++ interface.c (working copy)
@@ -2411,9 +2411,12 @@ void
gfc_procedure_use (gfc_symbol *sym, gfc_actual_arglist **ap, locus *where)
{
- /* Warn about calls with an implicit interface. */
+ /* Warn about calls with an implicit interface. Special case
+ for calling a ISO_C_BINDING because these c_loc and c_funloc
+ are pseudo-unknown. */
if (gfc_option.warn_implicit_interface
- && sym->attr.if_source == IFSRC_UNKNOWN)
+ && sym->attr.if_source == IFSRC_UNKNOWN
+ && ! sym->attr.is_iso_c)
gfc_warning ("Procedure '%s' called with an implicit interface at %L",
sym->name, where);
Index: symbol.c
===================================================================
--- symbol.c (revision 143076)
+++ symbol.c (working copy)
@@ -4169,6 +4169,7 @@ generate_isocbinding_symbol (const char
tmp_sym->result = tmp_sym;
tmp_sym->attr.external = 1;
tmp_sym->attr.use_assoc = 0;
+ tmp_sym->attr.pure = 1;
tmp_sym->attr.if_source = IFSRC_UNKNOWN;
tmp_sym->attr.proc = PROC_UNKNOWN;
}
--
tkoenig at gcc dot gnu dot org changed:
What |Removed |Added
----------------------------------------------------------------------------
AssignedTo|unassigned at gcc dot gnu |tkoenig at gcc dot gnu dot
|dot org |org
Status|UNCONFIRMED |ASSIGNED
Ever Confirmed|0 |1
Last reconfirmed|0000-00-00 00:00:00 |2009-01-06 13:05:59
date| |
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38220