Change ch_type to Elf_Word in struct Chdr_data<64>
The ch_type field in struct Chdr_data<64> is 4 bytes, followed by a 4-byte padding. This change doesn't introduce any functional change since only the lower 32 bits of the ch_type field are used. PR gold/19060 * elfcpp.h (Chdr::get_ch_type): Change return type to Elf_Word. * elfcpp_internal.h (Chdr_data<64>): Change ch_type to 4 bytes and add ch_reserved.
This commit is contained in:
parent
73e5465df5
commit
9706b5e627
3 changed files with 24 additions and 5 deletions
|
@ -1,3 +1,10 @@
|
|||
2015-10-02 H.J. Lu <hongjiu.lu@intel.com>
|
||||
|
||||
PR gold/19060
|
||||
* elfcpp.h (Chdr::get_ch_type): Change return type to Elf_Word.
|
||||
* elfcpp_internal.h (Chdr_data<64>): Change ch_type to 4 bytes
|
||||
and add ch_reserved.
|
||||
|
||||
2015-04-08 H.J. Lu <hongjiu.lu@intel.com>
|
||||
|
||||
* elfcpp.h (Elf_sizes): Add chdr_size.
|
||||
|
|
|
@ -1302,7 +1302,7 @@ class Chdr
|
|||
file->view(loc.file_offset, loc.data_size).data()))
|
||||
{ }
|
||||
|
||||
typename Elf_types<size>::Elf_WXword
|
||||
Elf_Word
|
||||
get_ch_type() const
|
||||
{ return Convert<size, big_endian>::convert_host(this->p_->ch_type); }
|
||||
|
||||
|
|
|
@ -82,11 +82,23 @@ struct Shdr_data
|
|||
// An ELF compression header.
|
||||
|
||||
template<int size>
|
||||
struct Chdr_data
|
||||
struct Chdr_data;
|
||||
|
||||
template<>
|
||||
struct Chdr_data<32>
|
||||
{
|
||||
typename Elf_types<size>::Elf_WXword ch_type;
|
||||
typename Elf_types<size>::Elf_WXword ch_size;
|
||||
typename Elf_types<size>::Elf_WXword ch_addralign;
|
||||
Elf_Word ch_type;
|
||||
Elf_Word ch_size;
|
||||
Elf_Word ch_addralign;
|
||||
};
|
||||
|
||||
template<>
|
||||
struct Chdr_data<64>
|
||||
{
|
||||
Elf_Word ch_type;
|
||||
Elf_Word ch_reserved;
|
||||
Elf_Xword ch_size;
|
||||
Elf_Xword ch_addralign;
|
||||
};
|
||||
|
||||
// An ELF segment header. We use template specialization for the
|
||||
|
|
Loading…
Reference in a new issue