+2019-03-10 Thomas Koenig <tkoenig@gcc.gnu.org>
+ Steven G. Kargl <kargl@gcc.gnu.org>
+
+ PR fortran/87734
+ Backort from trunk
+ * symbol.c (gfc_add_procedure): Only throw an error if the
+ procedure has not been declared either PUBLIC or PRIVATE.
+ * resolve.c (is_illegal_recursion): Remove an assert().
+
2019-03-06 Thomas Koenig <tkoenig@gcc.gnu.org>
PR fortran/72714
|| gfc_fl_struct (sym->attr.flavor))
return false;
- gcc_assert (sym->attr.flavor == FL_PROCEDURE);
-
/* If we've got an ENTRY, find real procedure. */
if (sym->attr.entry && sym->ns->entries)
proc_sym = sym->ns->entries->sym;
if (where == NULL)
where = &gfc_current_locus;
- if (attr->proc != PROC_UNKNOWN && !attr->module_procedure)
+ if (attr->proc != PROC_UNKNOWN && !attr->module_procedure
+ && attr->access == ACCESS_UNKNOWN)
{
if (attr->proc == PROC_ST_FUNCTION && t == PROC_INTERNAL
&& !gfc_notification_std (GFC_STD_F2008))
+2019-03-10 Thomas Koenig <tkoenig@gcc.gnu.org>
+
+ PR fortran/87734
+ Backport from trunk
+ * gfortran.dg/public_private_module_10.f90: New test.
+
2019-04-10 Matthias Klose <doko@ubuntu.com>
Backport from the gcc-8 branch
--- /dev/null
+! { dg-do compile }
+! PR 87734 - this used to issue spurious errors.
+
+module m_vstring
+ implicit none
+
+ public :: vstring_length
+
+contains
+
+ subroutine vstring_cast()
+ character ( len = vstring_length() ) :: char_string
+ end subroutine
+
+ pure integer function vstring_length ()
+ end function
+
+end module