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

gcc/
    
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.

From-SVN: r164916
This commit is contained in:
Andi Kleen 2010-10-03 15:56:06 +00:00 committed by Andi Kleen
parent 5ed6934450
commit f1e92a43e9
4 changed files with 20 additions and 1 deletions

View 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

View 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);

View 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.

View 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);
}