diff options
-rw-r--r-- | gcc/lto/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/lto/lto-elf.c | 6 |
2 files changed, 12 insertions, 0 deletions
diff --git a/gcc/lto/ChangeLog b/gcc/lto/ChangeLog index 04807e3..2aa86db 100644 --- a/gcc/lto/ChangeLog +++ b/gcc/lto/ChangeLog @@ -1,3 +1,9 @@ +2010-01-02 H.J. Lu <hongjiu.lu@intel.com> + + PR lto/42580 + * lto-elf.c (lto_elf_file_open): Stop if the command line + option file is missing. + 2009-12-15 Richard Guenther <rguenther@suse.de> * lto.c (lto_fixup_field_decl): Fixup DECL_FIELD_OFFSET. diff --git a/gcc/lto/lto-elf.c b/gcc/lto/lto-elf.c index 7c5453a..0311dde 100644 --- a/gcc/lto/lto-elf.c +++ b/gcc/lto/lto-elf.c @@ -556,6 +556,12 @@ lto_elf_file_open (const char *filename, bool writable) } else { + /* The file started with '@' is a file containing command line + options. Stop if it doesn't exist. */ + if (offset_p == filename) + fatal_error ("command line option file '%s' does not exist", + filename); + fname = (char *) xmalloc (offset_p - filename + 1); memcpy (fname, filename, offset_p - filename); fname[offset_p - filename] = '\0'; |