* lto-opts.c (lto_file_read_options): Add loop over all inputs.
From-SVN: r162633
This commit is contained in:
parent
d720b8692c
commit
c71eb2b76c
2 changed files with 28 additions and 8 deletions
|
@ -1,3 +1,7 @@
|
|||
2010-07-28 Andi Kleen <ak@linux.intel.com>
|
||||
|
||||
* lto-opts.c (lto_file_read_options): Add loop over all inputs.
|
||||
|
||||
2010-07-28 Richard Guenther <rguenther@suse.de>
|
||||
|
||||
PR middle-end/44903
|
||||
|
|
|
@ -349,8 +349,8 @@ input_options (struct lto_input_block *ib)
|
|||
void
|
||||
lto_read_file_options (struct lto_file_decl_data *file_data)
|
||||
{
|
||||
size_t len;
|
||||
const char *data;
|
||||
size_t len, l, skip;
|
||||
const char *data, *p;
|
||||
const struct lto_simple_header *header;
|
||||
int32_t opts_offset;
|
||||
struct lto_input_block ib;
|
||||
|
@ -358,14 +358,30 @@ lto_read_file_options (struct lto_file_decl_data *file_data)
|
|||
data = lto_get_section_data (file_data, LTO_section_opts, NULL, &len);
|
||||
if (!data)
|
||||
return;
|
||||
header = (const struct lto_simple_header *) data;
|
||||
opts_offset = sizeof (*header);
|
||||
|
||||
lto_check_version (header->lto_header.major_version,
|
||||
header->lto_header.minor_version);
|
||||
/* Option could be multiple sections merged (through ld -r)
|
||||
Keep reading all options. This is ok right now because
|
||||
the options just get mashed together anyways.
|
||||
This will have to be done differently once lto-opts knows
|
||||
how to associate options with different files. */
|
||||
l = len;
|
||||
p = data;
|
||||
do
|
||||
{
|
||||
header = (const struct lto_simple_header *) p;
|
||||
opts_offset = sizeof (*header);
|
||||
|
||||
LTO_INIT_INPUT_BLOCK (ib, data + opts_offset, 0, header->main_size);
|
||||
input_options (&ib);
|
||||
lto_check_version (header->lto_header.major_version,
|
||||
header->lto_header.minor_version);
|
||||
|
||||
LTO_INIT_INPUT_BLOCK (ib, p + opts_offset, 0, header->main_size);
|
||||
input_options (&ib);
|
||||
|
||||
skip = header->main_size + opts_offset;
|
||||
l -= skip;
|
||||
p += skip;
|
||||
}
|
||||
while (l > 0);
|
||||
|
||||
lto_free_section_data (file_data, LTO_section_opts, 0, data, len);
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue