diff options
author | Andi Kleen <ak@linux.intel.com> | 2011-10-16 23:22:32 +0000 |
---|---|---|
committer | Andi Kleen <ak@gcc.gnu.org> | 2011-10-16 23:22:32 +0000 |
commit | 5958009b73d6e0048123e934a37e7f21be747086 (patch) | |
tree | c8444e075b56d5055f9758411b4aa1770e43cfcc /gcc | |
parent | b74bdc61455f557fff3f87ac0984b01d137ada27 (diff) | |
download | gcc-5958009b73d6e0048123e934a37e7f21be747086.zip gcc-5958009b73d6e0048123e934a37e7f21be747086.tar.gz gcc-5958009b73d6e0048123e934a37e7f21be747086.tar.bz2 |
Add error checking to lto_section_read
gcc/lto/:
2011-10-09 Andi Kleen <ak@linux.intel.com>
* lto.c (lto_section_read): Call fatal_error on IO or mmap errors.
From-SVN: r180065
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/lto/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/lto/lto.c | 11 |
2 files changed, 13 insertions, 2 deletions
diff --git a/gcc/lto/ChangeLog b/gcc/lto/ChangeLog index e350fd8..12f75ad 100644 --- a/gcc/lto/ChangeLog +++ b/gcc/lto/ChangeLog @@ -1,3 +1,7 @@ +2011-10-09 Andi Kleen <ak@linux.intel.com> + + * lto.c (lto_section_read): Call fatal_error on IO or mmap errors. + 2011-10-11 Michael Meissner <meissner@linux.vnet.ibm.com> * lto-lang.c (def_builtin_1): Delete old interface with two diff --git a/gcc/lto/lto.c b/gcc/lto/lto.c index a77eeb4..63af047 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; + { + fatal_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; + { + fatal_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); + fatal_error ("Cannot read %s", file_data->file_name); result = NULL; } #ifdef __MINGW32__ |