https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105138

--- Comment #8 from kargl at gcc dot gnu.org ---
This patch fixes the error.  The comment in the patch explains it.

diff --git a/gcc/fortran/intrinsic.cc b/gcc/fortran/intrinsic.cc
index 52e5f4ed39e..ec833667dbe 100644
--- a/gcc/fortran/intrinsic.cc
+++ b/gcc/fortran/intrinsic.cc
@@ -1167,6 +1167,11 @@ gfc_is_intrinsic (gfc_symbol* sym, int subroutine_flag,
locus loc)
       || sym->attr.if_source == IFSRC_IFBODY)
     return false;

+  /* If the function has a result-name and it's recursive, it cannot be
+     an intrinsic subprogram.  */
+  if (sym->result && sym->attr.recursive)
+    return false;
+
   if (subroutine_flag)
     isym = gfc_find_subroutine (sym->name);
   else

Reply via email to