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);
}