re PR lto/60405 (ICE in lto1 on x86_64-linux-gnu)

2014-03-04  Richard Biener  <rguenther@suse.de>

	PR lto/60405
	* lto-streamer-in.c (lto_read_body): Remove LTO bytecode version
	check.
	(lto_input_toplevel_asms): Likewise.
	* lto-section-in.c (lto_get_section_data): Instead do it here
	for every section.

From-SVN: r208311
This commit is contained in:
Richard Biener 2014-03-04 11:25:50 +00:00 committed by Richard Biener
parent 064fd5a8d0
commit 9185673501
3 changed files with 29 additions and 24 deletions

View File

@ -1,3 +1,12 @@
2014-03-04 Richard Biener <rguenther@suse.de>
PR lto/60405
* lto-streamer-in.c (lto_read_body): Remove LTO bytecode version
check.
(lto_input_toplevel_asms): Likewise.
* lto-section-in.c (lto_get_section_data): Instead do it here
for every section.
2014-03-04 Richard Biener <rguenther@suse.de>
PR tree-optimization/60382

View File

@ -153,26 +153,30 @@ lto_get_section_data (struct lto_file_decl_data *file_data,
/* FIXME lto: WPA mode does not write compressed sections, so for now
suppress uncompression if flag_ltrans. */
if (flag_ltrans)
return data;
if (!flag_ltrans)
{
/* Create a mapping header containing the underlying data and length,
and prepend this to the uncompression buffer. The uncompressed data
then follows, and a pointer to the start of the uncompressed data is
returned. */
header = (struct lto_data_header *) xmalloc (header_length);
header->data = data;
header->len = *len;
/* Create a mapping header containing the underlying data and length,
and prepend this to the uncompression buffer. The uncompressed data
then follows, and a pointer to the start of the uncompressed data is
returned. */
header = (struct lto_data_header *) xmalloc (header_length);
header->data = data;
header->len = *len;
buffer.data = (char *) header;
buffer.length = header_length;
buffer.data = (char *) header;
buffer.length = header_length;
stream = lto_start_uncompression (lto_append_data, &buffer);
lto_uncompress_block (stream, data, *len);
lto_end_uncompression (stream);
stream = lto_start_uncompression (lto_append_data, &buffer);
lto_uncompress_block (stream, data, *len);
lto_end_uncompression (stream);
*len = buffer.length - header_length;
data = buffer.data + header_length;
}
*len = buffer.length - header_length;
return buffer.data + header_length;
lto_check_version (((lto_header *)data)->major_version,
((lto_header *)data)->minor_version);
return data;
}

View File

@ -1059,10 +1059,6 @@ lto_read_body (struct lto_file_decl_data *file_data, struct cgraph_node *node,
data_in = lto_data_in_create (file_data, data + string_offset,
header->string_size, vNULL);
/* Make sure the file was generated by the exact same compiler. */
lto_check_version (header->lto_header.major_version,
header->lto_header.minor_version);
if (section_type == LTO_section_function_body)
{
struct lto_in_decl_state *decl_state;
@ -1331,10 +1327,6 @@ lto_input_toplevel_asms (struct lto_file_decl_data *file_data, int order_base)
data_in = lto_data_in_create (file_data, data + string_offset,
header->string_size, vNULL);
/* Make sure the file was generated by the exact same compiler. */
lto_check_version (header->lto_header.major_version,
header->lto_header.minor_version);
while ((str = streamer_read_string_cst (data_in, &ib)))
{
struct asm_node *node = add_asm_node (str);