aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
Diffstat (limited to 'gcc')
-rw-r--r--gcc/fortran/ChangeLog7
-rw-r--r--gcc/fortran/resolve.c7
2 files changed, 11 insertions, 3 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog
index e9432d2..3e4fde1 100644
--- a/gcc/fortran/ChangeLog
+++ b/gcc/fortran/ChangeLog
@@ -1,3 +1,10 @@
+2017-02-28 Paul Thomas <pault@gcc.gnu.org>
+
+ PR fortran/79739
+ * resolve.c (resolve_fl_procedure): Deal with the case where
+ 'submodule_name' is NULL so that gfc_error does not ICE.
+ Reformat the error message to make it more consistent.
+
2017-02-28 Jakub Jelinek <jakub@redhat.com>
* parse.c (parse_critical_block): Use cond ? G_("...") : G_("...")
diff --git a/gcc/fortran/resolve.c b/gcc/fortran/resolve.c
index 876f3cd..37ffde8 100644
--- a/gcc/fortran/resolve.c
+++ b/gcc/fortran/resolve.c
@@ -12341,9 +12341,10 @@ resolve_fl_procedure (gfc_symbol *sym, int mp_flag)
if (!gfc_check_result_characteristics (sym, iface, errmsg, 200))
{
gfc_error ("%s between the MODULE PROCEDURE declaration "
- "in module %s and the declaration at %L in "
- "SUBMODULE %s", errmsg, module_name,
- &sym->declared_at, submodule_name);
+ "in MODULE '%s' and the declaration at %L in "
+ "(SUB)MODULE '%s'",
+ errmsg, module_name, &sym->declared_at,
+ submodule_name ? submodule_name : module_name);
return false;
}