+2013-09-26 Paul Thomas <pault@gcc.gnu.org>
+
+ PR fortran/67567
+ * resolve.c (resolve_fl_procedure): For module procedures, take
+ the parent module name and the submodule name from the name of
+ the namespace.
+
2015-09-25 Steven G. Kargl <kargl@gcc.gnu.org>
PR fortran/67614
2015-09-21 Steven G. Kargl <kargl@gcc.gnu.org>
* resolve.c (nonscalar_typebound_assign): Fix typos in comment.
-
+
2015-09-21 Steven G. Kargl <kargl@gcc.gnu.org>
PR fortran/67615
- * resolve.c (gfc_resolve_code): Check for scalar expression in
+ * resolve.c (gfc_resolve_code): Check for scalar expression in
arithmetic-if.
2015-09-17 Paul Thomas <pault@gcc.gnu.org>
return;
}
}
-
+
if (exp->expr_type == EXPR_STRUCTURE)
return;
&& sym->attr.if_source == IFSRC_DECL)
{
gfc_symbol *iface;
+ char name[2*GFC_MAX_SYMBOL_LEN + 1];
+ char *module_name;
+ char *submodule_name;
+ strcpy (name, sym->ns->proc_name->name);
+ module_name = strtok (name, ".");
+ submodule_name = strtok (NULL, ".");
/* Stop the dummy characteristics test from using the interface
symbol instead of 'sym'. */
{
gfc_error ("Mismatch in PURE attribute between MODULE "
"PROCEDURE at %L and its interface in %s",
- &sym->declared_at,
- /* FIXME: PR fortran/67567: iface->module should
- not be NULL ! */
- iface->module ? iface->module : "");
+ &sym->declared_at, module_name);
return false;
}
{
gfc_error ("Mismatch in ELEMENTAL attribute between MODULE "
"PROCEDURE at %L and its interface in %s",
- &sym->declared_at, iface->module);
+ &sym->declared_at, module_name);
return false;
}
{
gfc_error ("Mismatch in RECURSIVE attribute between MODULE "
"PROCEDURE at %L and its interface in %s",
- &sym->declared_at,
- /* FIXME: PR fortran/67567: iface->module should
- not be NULL ! */
- iface->module ? iface->module : "");
+ &sym->declared_at, module_name);
return false;
}
{
gfc_error ("%s between the MODULE PROCEDURE declaration "
"in module %s and the declaration at %L in "
- "SUBMODULE %s", errmsg,
- /* FIXME: PR fortran/67567: iface->module should
- not be NULL ! */
- iface->module ? iface->module : "",
- &sym->declared_at, sym->ns->proc_name->name);
+ "SUBMODULE %s", errmsg, module_name,
+ &sym->declared_at, submodule_name);
return false;
}