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

anlauf at gcc dot gnu.org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Last reconfirmed|                            |2025-07-17
                 CC|                            |anlauf at gcc dot gnu.org
             Status|UNCONFIRMED                 |NEW
     Ever confirmed|0                           |1
           Keywords|                            |wrong-code

--- Comment #1 from anlauf at gcc dot gnu.org ---
Confirmed.

Tentative fix:

diff --git a/gcc/fortran/trans-expr.cc b/gcc/fortran/trans-expr.cc
index 082987f9cb8..b2b74c2f9bf 100644
--- a/gcc/fortran/trans-expr.cc
+++ b/gcc/fortran/trans-expr.cc
@@ -8159,7 +8182,8 @@ gfc_conv_procedure_call (gfc_se * se, gfc_symbol * sym,
                msg = xasprintf ("Pointer actual argument '%s' is not "
                                 "associated", e->symtree->n.sym->name);
              else if (attr.proc_pointer && !e->value.function.actual
-                      && (fsym == NULL || !fsym_attr.proc_pointer))
+                      && (fsym == NULL
+                          || (!fsym_attr.proc_pointer &&
!fsym_attr.optional)))
                msg = xasprintf ("Proc-pointer actual argument '%s' is not "
                                 "associated", e->symtree->n.sym->name);
              else

Reply via email to