This is the mail archive of the binutils@sourceware.org mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[elfcpp][PATCH] 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.

OK for master?

H.J.
---
	* 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.
---
 elfcpp/elfcpp.h          |  2 +-
 elfcpp/elfcpp_internal.h | 20 ++++++++++++++++----
 2 files changed, 17 insertions(+), 5 deletions(-)

diff --git a/elfcpp/elfcpp.h b/elfcpp/elfcpp.h
index 722984e..70380a5 100644
--- a/elfcpp/elfcpp.h
+++ b/elfcpp/elfcpp.h
@@ -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); }
 
diff --git a/elfcpp/elfcpp_internal.h b/elfcpp/elfcpp_internal.h
index 424a1f6..6f9dd48 100644
--- a/elfcpp/elfcpp_internal.h
+++ b/elfcpp/elfcpp_internal.h
@@ -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>
+{
+  Elf_Word ch_type;
+  Elf_Word ch_size;
+  Elf_Word ch_addralign;
+};
+
+template<>
+struct Chdr_data<64>
 {
-  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_reserved;
+  Elf_Xword ch_size;
+  Elf_Xword ch_addralign;
 };
 
 // An ELF segment header.  We use template specialization for the
-- 
2.4.3


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]