aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/ChangeLog4
-rw-r--r--gcc/lto-cgraph.c6
-rw-r--r--gcc/lto/ChangeLog5
-rw-r--r--gcc/lto/lto.c6
4 files changed, 20 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 9d1e2b50..9f3a315 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -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
diff --git a/gcc/lto-cgraph.c b/gcc/lto-cgraph.c
index b82fa73..b61e5d1 100644
--- a/gcc/lto-cgraph.c
+++ b/gcc/lto-cgraph.c
@@ -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);
diff --git a/gcc/lto/ChangeLog b/gcc/lto/ChangeLog
index 5d7de8d..5c8ac55 100644
--- a/gcc/lto/ChangeLog
+++ b/gcc/lto/ChangeLog
@@ -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.
diff --git a/gcc/lto/lto.c b/gcc/lto/lto.c
index e2fa975..2fbea73 100644
--- a/gcc/lto/lto.c
+++ b/gcc/lto/lto.c
@@ -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);
}