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

Reply via email to