2019-04-14 Thomas Koenig <tkoenig@gcc.gnu.org>
Backport from trunk
PR fortran/89981
* resolve.c (resolve_global_procedure): If the global symbol is an
ENTRY, also look up its name among the entries.
2019-04-14 Thomas Koenig <tkoenig@gcc.gnu.org>
Backport from trunk
PR fortran/89981
* gfortran.dg/entry_22.f90: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-8-branch@270350 138bc75d-0d04-0410-961f-82ee72b054a4
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog
index c7545e2..9da1a9f 100644
--- a/gcc/fortran/ChangeLog
+++ b/gcc/fortran/ChangeLog
@@ -1,3 +1,10 @@
+2019-04-14 Thomas Koenig <tkoenig@gcc.gnu.org>
+
+ Backport from trunk
+ PR fortran/89981
+ * resolve.c (resolve_global_procedure): If the global symbol is an
+ ENTRY, also look up its name among the entries.
+
2019-04-10 Harald Anlauf <anlauf@gmx.de>
Backport from trunk
diff --git a/gcc/fortran/resolve.c b/gcc/fortran/resolve.c
index b68c5ff..87d5969 100644
--- a/gcc/fortran/resolve.c
+++ b/gcc/fortran/resolve.c
@@ -2540,7 +2540,7 @@
if (gsym->binding_label && gsym->sym_name != def_sym->name)
gfc_find_symbol (gsym->sym_name, gsym->ns, 0, &def_sym);
- if (def_sym->attr.entry_master)
+ if (def_sym->attr.entry_master || def_sym->attr.entry)
{
gfc_entry_list *entry;
for (entry = gsym->ns->entries; entry; entry = entry->next)
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 500934c..946d862 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,9 @@
+2019-04-14 Thomas Koenig <tkoenig@gcc.gnu.org>
+
+ Backport from trunk
+ PR fortran/89981
+ * gfortran.dg/entry_22.f90: New test.
+
2019-04-11 Richard Biener <rguenther@suse.de>
PR tree-optimization/90018
diff --git a/gcc/testsuite/gfortran.dg/entry_22.f90 b/gcc/testsuite/gfortran.dg/entry_22.f90
new file mode 100644
index 0000000..7753429
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/entry_22.f90
@@ -0,0 +1,12 @@
+! { dg-do compile }
+! { dg-additional-options "-pedantic" }
+! PR fortran/89981 - this used to give a wrong warning (error with
+! -pedantic)
+program main
+ call bar(i)
+ call baz(i) ! { dg-error "Type mismatch in argument" }
+end program main
+subroutine foo(r)
+ entry bar(i)
+ entry baz(r)
+end subroutine foo