Message ID | 182bfc81-8e50-6d29-94be-d3bb781421fa@suse.cz |
---|---|
State | New |
Headers | show |
Series | Report error when -fpre-include can't be opened (PR fortran/88912). | expand |
On Mon, Feb 04, 2019 at 11:25:19AM +0100, Martin Liška wrote: > The patch improves error message instead of segfaulting. Note, fortran patches should be CCed to fortran mailing list. > 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 <mliska@suse.cz> > > PR fortran/88912 > * scanner.c (load_file): Report error for -fpre-include > file and do not ICE. Ok. Jakub
On 2/4/19 11:29 AM, Jakub Jelinek wrote: > On Mon, Feb 04, 2019 at 11:25:19AM +0100, Martin Liška wrote: >> The patch improves error message instead of segfaulting. > > Note, fortran patches should be CCed to fortran mailing list. Will do, thanks. > >> 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 <mliska@suse.cz> >> >> PR fortran/88912 >> * scanner.c (load_file): Report error for -fpre-include >> file and do not ICE. > > Ok. > > Jakub >
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);