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

anlauf at gcc dot gnu.org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |anlauf at gcc dot gnu.org

--- Comment #3 from anlauf at gcc dot gnu.org ---
Potential fix:

diff --git a/gcc/fortran/trans-io.cc b/gcc/fortran/trans-io.cc
index 9f86815388c..2f1a7be04aa 100644
--- a/gcc/fortran/trans-io.cc
+++ b/gcc/fortran/trans-io.cc
@@ -2529,6 +2529,17 @@ transfer_expr (gfc_se * se, gfc_typespec * ts, tree
addr_expr,
        }
       gcc_fallthrough ();
     default:
+      if (ts->type == BT_PROCEDURE
+         && code->expr1
+         && code->expr1->symtree
+         && code->expr1->symtree->n.sym)
+       {
+         if (code->expr1->symtree->n.sym->attr.proc_pointer)
+           gfc_error ("Procedure pointer at %C cannot be an output item");
+         else
+           gfc_error ("Procedure at %C cannot be an output item");
+         return;
+       }
       gfc_internal_error ("Bad IO basetype (%d)", ts->type);
     }

Reply via email to