On Sun, Oct 9, 2011 at 9:55 PM, Andi Kleen <a...@firstfloor.org> wrote: > From: Andi Kleen <a...@linux.intel.com> > > Various callers of lto_section_read segfault on a NULL return > when the mmap fails. Add some internal_errors to give a better > message to the user.
Hm, shouldn't these be fatal_error () then? Ok with that change. Thanks, Richard. > gcc/lto/: > > 2011-10-09 Andi Kleen <a...@linux.intel.com> > > * lto.c (lto_section_read): Call internal_error on IO or mmap errors. > --- > gcc/lto/lto.c | 11 +++++++++-- > 1 files changed, 9 insertions(+), 2 deletions(-) > > diff --git a/gcc/lto/lto.c b/gcc/lto/lto.c > index a77eeb4..dc16db4 100644 > --- a/gcc/lto/lto.c > +++ b/gcc/lto/lto.c > @@ -1237,7 +1237,10 @@ lto_read_section_data (struct lto_file_decl_data > *file_data, > { > fd = open (file_data->file_name, O_RDONLY|O_BINARY); > if (fd == -1) > - return NULL; > + { > + internal_error ("Cannot open %s", file_data->file_name); > + return NULL; > + } > fd_name = xstrdup (file_data->file_name); > } > > @@ -1255,7 +1258,10 @@ lto_read_section_data (struct lto_file_decl_data > *file_data, > result = (char *) mmap (NULL, computed_len, PROT_READ, MAP_PRIVATE, > fd, computed_offset); > if (result == MAP_FAILED) > - return NULL; > + { > + internal_error ("Cannot map %s", file_data->file_name); > + return NULL; > + } > > return result + diff; > #else > @@ -1264,6 +1270,7 @@ lto_read_section_data (struct lto_file_decl_data > *file_data, > || read (fd, result, len) != (ssize_t) len) > { > free (result); > + internal_error ("Cannot read %s", file_data->file_name); > result = NULL; > } > #ifdef __MINGW32__ > -- > 1.7.5.4 > >