https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69566
--- Comment #2 from Paul Thomas <pault at gcc dot gnu.org> --- Index: gcc/fortran/trans-expr.c =================================================================== *** gcc/fortran/trans-expr.c (revision 233009) --- gcc/fortran/trans-expr.c (working copy) *************** gfc_conv_procedure_call (gfc_se * se, gf *** 4723,4730 **** is the third and fourth argument to such a function call a value denoting the number of elements to copy (i.e., most of the time the length of a deferred length string). */ ! ulim_copy = formal == NULL && UNLIMITED_POLY (sym) ! && strcmp ("_copy", comp->name) == 0; /* Evaluate the arguments. */ for (arg = args, argc = 0; arg != NULL; --- 4723,4731 ---- is the third and fourth argument to such a function call a value denoting the number of elements to copy (i.e., most of the time the length of a deferred length string). */ ! ulim_copy = (formal == NULL) ! && UNLIMITED_POLY (sym) ! && comp && (strcmp ("_copy", comp->name) == 0); /* Evaluate the arguments. */ for (arg = args, argc = 0; arg != NULL; fixes the ICE. I will commit as 'obvious' in a few minutes. Unfortunately, it exposes another bug, when fixed that I have seen before.... somewhere! After the commit, I will modify this PR to reflect the new bug. Cheers Paul