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

--- Comment #5 from Rainer Emrich <rai...@emrich-ebersheim.de> ---
(In reply to Janne Blomqvist from comment #3)
> Or rather, also fixing another similar potential issue, you might instead
> want to test this:
> 
> diff --git a/libgfortran/io/unix.c b/libgfortran/io/unix.c
> index e5fc6e1..a1ce9a3 100644
> --- a/libgfortran/io/unix.c
> +++ b/libgfortran/io/unix.c
> @@ -1525,7 +1525,10 @@ compare_file_filename (gfc_unit *u, const char *name,
> int len)
>        goto done;
>      }
>  # endif
> -  ret = (strcmp(path, u->filename) == 0);
> +  if (u->filename)
> +    ret = (strcmp(path, u->filename) == 0);
> +  else
> +    ret = 0;
>  #endif
>   done:
>    free (path);
> @@ -1570,7 +1573,7 @@ find_file0 (gfc_unit *u, FIND_FILE0_DECL)
>      }
>    else
>  # endif
> -    if (strcmp (u->filename, path) == 0)
> +    if (u->filename && strcmp (u->filename, path) == 0)
>        return u;
>  #endif

This solves the issue!

Richard set target milestone to 5.2. So I suppose this should go into trunk and
the gcc-5 branch.

Reply via email to