Hi.

The patch improves error message instead of segfaulting.

Patch can bootstrap on x86_64-linux-gnu and survives regression tests.

Ready to be installed?
Thanks,
Martin

gcc/fortran/ChangeLog:

2019-01-25  Martin Liska  <mli...@suse.cz>

        PR fortran/88912
        * scanner.c (load_file): Report error for -fpre-include
        file and do not ICE.
---
 gcc/fortran/scanner.c | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)


diff --git a/gcc/fortran/scanner.c b/gcc/fortran/scanner.c
index efb6ebf9509..08e4521a86d 100644
--- a/gcc/fortran/scanner.c
+++ b/gcc/fortran/scanner.c
@@ -2478,8 +2478,14 @@ load_file (const char *realfilename, const char *displayedname, bool initial)
       input = gfc_open_included_file (realfilename, false, false);
       if (input == NULL)
 	{
-	  fprintf (stderr, "%s:%d: Error: Can't open included file '%s'\n",
-		   current_file->filename, current_file->line, filename);
+	  /* For -fpre-include file, current_file is NULL.  */
+	  if (current_file)
+	    fprintf (stderr, "%s:%d: Error: Can't open included file '%s'\n",
+		     current_file->filename, current_file->line, filename);
+	  else
+	    fprintf (stderr, "Error: Can't open pre-included file '%s'\n",
+		     filename);
+
 	  return false;
 	}
       stat_result = stat (realfilename, &st);

Reply via email to