diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 4c71bb5b0ba164a0e94e4b279ba6a85a06faf280..6b7514debf7b16bff7507b24f3afc6a593add61f 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,7 @@
+2010-07-10   Andi Kleen <ak@linux.intel.com>
+
+	* lto-opts.c (lto_read_file_options): Check for missing section.
+
 2010-07-22  Bernd Schmidt  <bernds@codesourcery.com>
 
 	* ira.c (check_allocation): Correctly handle the case where an allocno
diff --git a/gcc/lto-opts.c b/gcc/lto-opts.c
index 840571431f1b71a98423adb85d30af82fa21aec1..21a5a20a0a63ce80c6176cfc8561e179f638d970 100644
--- a/gcc/lto-opts.c
+++ b/gcc/lto-opts.c
@@ -356,6 +356,8 @@ lto_read_file_options (struct lto_file_decl_data *file_data)
   struct lto_input_block ib;
 
   data = lto_get_section_data (file_data, LTO_section_opts, NULL, &len);
+  if (!data)
+	  return;
   header = (const struct lto_simple_header *) data;
   opts_offset = sizeof (*header);