From f1e92a43e9aec2f052cfc5c20b2e793f97fc18da Mon Sep 17 00:00:00 2001 From: Andi Kleen Date: Sun, 3 Oct 2010 15:56:06 +0000 Subject: [PATCH] lto-cgraph.c (input_cgraph): Check for missing sections. gcc/ 2010-10-03 Andi Kleen * lto-cgraph.c (input_cgraph): Check for missing sections. gcc/lto/ 2010-10-03 Andi Kleen * lto.c (lto_file_finalize): Replace gcc_assert for missing section with fatal_error. From-SVN: r164916 --- gcc/ChangeLog | 4 ++++ gcc/lto-cgraph.c | 6 ++++++ gcc/lto/ChangeLog | 5 +++++ gcc/lto/lto.c | 6 +++++- 4 files changed, 20 insertions(+), 1 deletion(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 9d1e2b50f61..9f3a3155c80 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,7 @@ +2010-10-03 Andi Kleen + + * lto-cgraph.c (input_cgraph): Check for missing sections. + 2010-10-03 Uros Bizjak * config/i386/i386.md (*ashl3_mask): Change operand 2 preticate diff --git a/gcc/lto-cgraph.c b/gcc/lto-cgraph.c index b82fa735ded..b61e5d16761 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 5d7de8dbda3..5c8ac55d0dc 100644 --- a/gcc/lto/ChangeLog +++ b/gcc/lto/ChangeLog @@ -1,3 +1,8 @@ +2010-10-03 Andi Kleen + + * lto.c (lto_file_finalize): Replace gcc_assert for missing section + with fatal_error. + 2010-09-28 Jan Hubicka * lto-lang.c (handle_leaf_attribute): New function. diff --git a/gcc/lto/lto.c b/gcc/lto/lto.c index e2fa97576eb..2fbea7332d4 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); }