* 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:
Ian Lance Taylor 2009-01-28 20:09:18 +00:00
parent 528aeb629f
commit e0ebcf42c2
5 changed files with 29 additions and 20 deletions

View File

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

View File

@ -27,6 +27,8 @@
#include "ansidecl.h"
#include <cstddef>
#include <cstring>
#include <stdint.h>
#include <sys/types.h>
#ifndef ENABLE_NLS

View File

@ -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

View File

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

View File

@ -23,6 +23,7 @@
#include "gold.h"
#include <string>
#include <cstdio>
#include "../bfd/bfdver.h"