From fe097bffa73ee232ed23ce503a352556674aa4f3 Mon Sep 17 00:00:00 2001 From: Saleem Abdulrasool Date: Thu, 9 Jan 2014 04:31:14 +0000 Subject: llvm-readobj: fix endianness Explicitly handle endianness to ensure that bytes are read properly on big-endian systems. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@198847 91177308-0d34-0410-b5e6-96231b3b80d8 --- tools/llvm-readobj/ARMEHABIPrinter.h | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) (limited to 'tools/llvm-readobj/ARMEHABIPrinter.h') diff --git a/tools/llvm-readobj/ARMEHABIPrinter.h b/tools/llvm-readobj/ARMEHABIPrinter.h index f6c14b9610..754733f6b4 100644 --- a/tools/llvm-readobj/ARMEHABIPrinter.h +++ b/tools/llvm-readobj/ARMEHABIPrinter.h @@ -137,8 +137,8 @@ void PrinterContext::PrintExceptionTable(const Elf_Shdr *IT, /// +-+---+----+-----------------------+ /// | more personality routine data | - const uint32_t Word = - *reinterpret_cast(Contents->data() + TableEntryOffset); + const support::ulittle32_t Word = + *reinterpret_cast(Contents->data() + TableEntryOffset); if (Word & 0x80000000) { SW.printString("Model", StringRef("Compact")); @@ -200,16 +200,17 @@ void PrinterContext::PrintIndexTable(unsigned SectionIndex, /// - The special bit pattern EXIDX_CANTUNWIND, indicating that associated /// frames cannot be unwound - const uint32_t *Data = reinterpret_cast(Contents->data()); + const support::ulittle32_t *Data = + reinterpret_cast(Contents->data()); const unsigned Entries = IT->sh_size / IndexTableEntrySize; ListScope E(SW, "Entries"); for (unsigned Entry = 0; Entry < Entries; ++Entry) { DictScope E(SW, "Entry"); - const uint32_t Word0 = + const support::ulittle32_t Word0 = Data[Entry * (IndexTableEntrySize / sizeof(*Data)) + 0]; - const uint32_t Word1 = + const support::ulittle32_t Word1 = Data[Entry * (IndexTableEntrySize / sizeof(*Data)) + 1]; if (Word0 & 0x80000000) { -- cgit v1.2.3