gcc/
authorak <ak@138bc75d-0d04-0410-961f-82ee72b054a4>
Sun, 3 Oct 2010 15:56:06 +0000 (15:56 +0000)
committerak <ak@138bc75d-0d04-0410-961f-82ee72b054a4>
Sun, 3 Oct 2010 15:56:06 +0000 (15:56 +0000)
2010-10-03  Andi Kleen <ak@linux.intel.com>

* lto-cgraph.c (input_cgraph): Check for missing sections.

gcc/lto/

2010-10-03  Andi Kleen <ak@linux.intel.com>

     * lto.c (lto_file_finalize): Replace gcc_assert for missing section
          with fatal_error.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@164916 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/lto-cgraph.c
gcc/lto/ChangeLog
gcc/lto/lto.c

index 9d1e2b5..9f3a315 100644 (file)
@@ -1,3 +1,7 @@
+2010-10-03  Andi Kleen <ak@linux.intel.com>
+
+       * lto-cgraph.c (input_cgraph): Check for missing sections.
+
 2010-10-03  Uros Bizjak  <ubizjak@gmail.com>
 
        * config/i386/i386.md (*ashl<mode>3_mask): Change operand 2 preticate
index b82fa73..b61e5d1 100644 (file)
@@ -1468,6 +1468,8 @@ input_cgraph (void)
 
       ib = lto_create_simple_input_block (file_data, LTO_section_cgraph,
                                          &data, &len);
+      if (!ib) 
+       fatal_error ("Cannot find LTO cgraph in %s\n", file_data->file_name);
       input_profile_summary (ib);
       file_data->cgraph_node_encoder = lto_cgraph_encoder_new ();
       nodes = input_cgraph_1 (file_data, ib);
@@ -1476,12 +1478,16 @@ input_cgraph (void)
 
       ib = lto_create_simple_input_block (file_data, LTO_section_varpool,
                                          &data, &len);
+      if (!ib)
+       fatal_error ("Cannot find LTO varpool in %s\n", file_data->file_name);
       varpool = input_varpool_1 (file_data, ib);
       lto_destroy_simple_input_block (file_data, LTO_section_varpool,
                                      ib, data, len);
 
       ib = lto_create_simple_input_block (file_data, LTO_section_refs,
                                          &data, &len);
+      if (!ib)
+       fatal_error("Cannot find LTO section refs in %s\n", file_data->file_name);
       input_refs (ib, nodes, varpool);
       lto_destroy_simple_input_block (file_data, LTO_section_refs,
                                      ib, data, len);
index 5d7de8d..5c8ac55 100644 (file)
@@ -1,3 +1,8 @@
+2010-10-03  Andi Kleen <ak@linux.intel.com>
+
+       * lto.c (lto_file_finalize): Replace gcc_assert for missing section
+          with fatal_error.
+
 2010-09-28  Jan Hubicka  <jh@suse.cz>
 
        * lto-lang.c (handle_leaf_attribute): New function.
index e2fa975..2fbea73 100644 (file)
@@ -493,7 +493,11 @@ lto_file_finalize (struct lto_file_decl_data *file_data, lto_file *file)
   file_data->renaming_hash_table = lto_create_renaming_table ();
   file_data->file_name = file->filename;
   data = lto_get_section_data (file_data, LTO_section_decls, NULL, &len);
-  gcc_assert (data != NULL);
+  if (data == NULL)
+    {
+      internal_error ("Cannot read LTO decls from %s", file_data->file_name);
+      return;
+    }
   lto_read_decls (file_data, data, file_data->resolutions);
   lto_free_section_data (file_data, LTO_section_decls, NULL, data, len);
 }