From 78ce4053fa82a756bf2cb1a9e60d95a4f3ba7b05 Mon Sep 17 00:00:00 2001
From: "H.J. Lu" <hongjiu.lu@intel.com>
Date: Sat, 2 Jan 2010 17:30:12 +0000
Subject: [PATCH] Stop if the command line option file is missing

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.

From-SVN: r155575
---
 gcc/lto/ChangeLog | 6 ++++++
 gcc/lto/lto-elf.c | 6 ++++++
 2 files changed, 12 insertions(+)

diff --git a/gcc/lto/ChangeLog b/gcc/lto/ChangeLog
index 04807e300262..2aa86db9d07a 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 7c5453a41bf1..0311ddefb230 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';
-- 
GitLab