* gold.h: Include <cstring> and <stdint.h>.
* version.cc: Include <cstdio>. * object.cc (Sized_relobj::do_layout): Initialize gc_sd to avoid a warning. * reduced_debug_output.cc (insert_into_vector): Rename from Insert_into_vector; change all callers. Use Swap_unaligned to avoid aliasing issue; remove union since it is unnecessary.
This commit is contained in:
parent
528aeb629f
commit
e0ebcf42c2
5 changed files with 29 additions and 20 deletions
|
@ -1,3 +1,13 @@
|
|||
2009-01-28 Ian Lance Taylor <iant@google.com>
|
||||
|
||||
* gold.h: Include <cstring> and <stdint.h>.
|
||||
* version.cc: Include <cstdio>.
|
||||
* object.cc (Sized_relobj::do_layout): Initialize gc_sd to avoid a
|
||||
warning.
|
||||
* reduced_debug_output.cc (insert_into_vector): Rename from
|
||||
Insert_into_vector; change all callers. Use Swap_unaligned to
|
||||
avoid aliasing issue; remove union since it is unnecessary.
|
||||
|
||||
2009-01-27 Sriraman Tallam <tmsriram@google.com>
|
||||
|
||||
* Makefile.am (CCFILES): Add gc.cc.
|
||||
|
|
|
@ -27,6 +27,8 @@
|
|||
#include "ansidecl.h"
|
||||
|
||||
#include <cstddef>
|
||||
#include <cstring>
|
||||
#include <stdint.h>
|
||||
#include <sys/types.h>
|
||||
|
||||
#ifndef ENABLE_NLS
|
||||
|
|
|
@ -913,7 +913,7 @@ Sized_relobj<size, big_endian>::do_layout(Symbol_table* symtab,
|
|||
&& symtab->gc()->is_worklist_ready());
|
||||
if (shnum == 0)
|
||||
return;
|
||||
Symbols_data* gc_sd;
|
||||
Symbols_data* gc_sd = NULL;
|
||||
if (is_gc_pass_one)
|
||||
{
|
||||
// During garbage collection save the symbols data to use it when
|
||||
|
|
|
@ -68,19 +68,15 @@ get_length_as_unsigned_LEB_128(uint64_t value)
|
|||
}
|
||||
|
||||
template <int valsize>
|
||||
void Insert_into_vector(std::vector<unsigned char>* destination,
|
||||
void insert_into_vector(std::vector<unsigned char>* destination,
|
||||
typename elfcpp::Valtype_base<valsize>::Valtype value)
|
||||
{
|
||||
union
|
||||
{
|
||||
unsigned char buffer[valsize / 8];
|
||||
long long align;
|
||||
} u;
|
||||
unsigned char buffer[valsize / 8];
|
||||
if (parameters->target().is_big_endian())
|
||||
elfcpp::Swap<valsize, true>::writeval(u.buffer, value);
|
||||
elfcpp::Swap_unaligned<valsize, true>::writeval(buffer, value);
|
||||
else
|
||||
elfcpp::Swap<valsize, false>::writeval(u.buffer, value);
|
||||
destination->insert(destination->end(), u.buffer, u.buffer + valsize / 8);
|
||||
elfcpp::Swap_unaligned<valsize, false>::writeval(buffer, value);
|
||||
destination->insert(destination->end(), buffer, buffer + valsize / 8);
|
||||
}
|
||||
|
||||
template <int valsize>
|
||||
|
@ -356,15 +352,15 @@ void Output_reduced_debug_info_section::set_final_data_size()
|
|||
return;
|
||||
}
|
||||
|
||||
Insert_into_vector<32>(&this->data_, 0xFFFFFFFF);
|
||||
Insert_into_vector<32>(&this->data_, 0);
|
||||
Insert_into_vector<64>(
|
||||
insert_into_vector<32>(&this->data_, 0xFFFFFFFF);
|
||||
insert_into_vector<32>(&this->data_, 0);
|
||||
insert_into_vector<64>(
|
||||
&this->data_,
|
||||
(11 + get_length_as_unsigned_LEB_128(abbreviation_number)
|
||||
+ die_end - debug_info));
|
||||
Insert_into_vector<16>(&this->data_, version);
|
||||
Insert_into_vector<64>(&this->data_, 0);
|
||||
Insert_into_vector<8>(&this->data_, address_size);
|
||||
insert_into_vector<16>(&this->data_, version);
|
||||
insert_into_vector<64>(&this->data_, 0);
|
||||
insert_into_vector<8>(&this->data_, address_size);
|
||||
write_unsigned_LEB_128(&this->data_, abbreviation_number);
|
||||
this->data_.insert(this->data_.end(), debug_info, die_end);
|
||||
}
|
||||
|
@ -398,13 +394,13 @@ void Output_reduced_debug_info_section::set_final_data_size()
|
|||
return;
|
||||
}
|
||||
|
||||
Insert_into_vector<32>(
|
||||
insert_into_vector<32>(
|
||||
&this->data_,
|
||||
(7 + get_length_as_unsigned_LEB_128(abbreviation_number)
|
||||
+ die_end - debug_info));
|
||||
Insert_into_vector<16>(&this->data_, version);
|
||||
Insert_into_vector<32>(&this->data_, 0);
|
||||
Insert_into_vector<8>(&this->data_, address_size);
|
||||
insert_into_vector<16>(&this->data_, version);
|
||||
insert_into_vector<32>(&this->data_, 0);
|
||||
insert_into_vector<8>(&this->data_, address_size);
|
||||
write_unsigned_LEB_128(&this->data_, abbreviation_number);
|
||||
this->data_.insert(this->data_.end(), debug_info, die_end);
|
||||
}
|
||||
|
|
|
@ -23,6 +23,7 @@
|
|||
#include "gold.h"
|
||||
|
||||
#include <string>
|
||||
#include <cstdio>
|
||||
|
||||
#include "../bfd/bfdver.h"
|
||||
|
||||
|
|
Loading…
Reference in a new issue