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

--- Comment #4 from anlauf at gcc dot gnu.org ---
Partial fix:

diff --git a/gcc/fortran/trans-expr.cc b/gcc/fortran/trans-expr.cc
index b95c5cf2f96..f09fad337bc 100644
--- a/gcc/fortran/trans-expr.cc
+++ b/gcc/fortran/trans-expr.cc
@@ -6193,6 +6193,7 @@ gfc_conv_procedure_call (gfc_se * se, gfc_symbol * sym,
        }
       else if (arg->expr->expr_type == EXPR_NULL
               && fsym && !fsym->attr.pointer
+              && fsym->attr.optional
               && (fsym->ts.type != BT_CLASS
                   || !CLASS_DATA (fsym)->attr.class_pointer))
        {

Reply via email to