https://gcc.gnu.org/bugzilla/show_bug.cgi?id=122434
Paul Thomas <pault at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Blocks| |82173
Assignee|unassigned at gcc dot gnu.org |pault at gcc dot gnu.org
CC| |jvdelisle at gcc dot gnu.org,
| |pault at gcc dot gnu.org
Status|UNCONFIRMED |NEW
Ever confirmed|0 |1
Last reconfirmed| |2025-10-27
--- Comment #1 from Paul Thomas <pault at gcc dot gnu.org> ---
This one-liner fixes it and regtests OK.
diff --git a/gcc/fortran/resolve.cc b/gcc/fortran/resolve.cc
index 117a51c7e9a..ecd2ada36a3 100644
--- a/gcc/fortran/resolve.cc
+++ b/gcc/fortran/resolve.cc
@@ -18956,7 +18956,8 @@ gfc_impure_variable (gfc_symbol *sym)
{
if (ns == sym->ns)
break;
- if (ns->proc_name->attr.flavor == FL_PROCEDURE && !sym->attr.function)
+ if (ns->proc_name->attr.flavor == FL_PROCEDURE
+ && !(sym->attr.function || sym->attr.result))
return 1;
}
Paul
Referenced Bugs:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82173
[Bug 82173] [meta-bug] [PDT] Parameterized derived type errors