diff options
| author | Saleem Abdulrasool <compnerd@compnerd.org> | 2014-01-09 04:31:14 +0000 |
|---|---|---|
| committer | Saleem Abdulrasool <compnerd@compnerd.org> | 2014-01-09 04:31:14 +0000 |
| commit | b7b8a8f46dcab7cc5c54483adbd9b11fc34ba244 (patch) | |
| tree | 0c245a287dbfd451c30efbde3b2e43958ed7f742 /llvm | |
| parent | 38fe6342f63925d65ae438f71484eeb5744548a6 (diff) | |
| download | bcm5719-llvm-b7b8a8f46dcab7cc5c54483adbd9b11fc34ba244.tar.gz bcm5719-llvm-b7b8a8f46dcab7cc5c54483adbd9b11fc34ba244.zip | |
llvm-readobj: fix endianness
Explicitly handle endianness to ensure that bytes are read properly on
big-endian systems.
llvm-svn: 198847
Diffstat (limited to 'llvm')
| -rw-r--r-- | llvm/tools/llvm-readobj/ARMEHABIPrinter.h | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/llvm/tools/llvm-readobj/ARMEHABIPrinter.h b/llvm/tools/llvm-readobj/ARMEHABIPrinter.h index f6c14b9610d..754733f6b42 100644 --- a/llvm/tools/llvm-readobj/ARMEHABIPrinter.h +++ b/llvm/tools/llvm-readobj/ARMEHABIPrinter.h @@ -137,8 +137,8 @@ void PrinterContext<ET>::PrintExceptionTable(const Elf_Shdr *IT, /// +-+---+----+-----------------------+ /// | more personality routine data | - const uint32_t Word = - *reinterpret_cast<const uint32_t *>(Contents->data() + TableEntryOffset); + const support::ulittle32_t Word = + *reinterpret_cast<const support::ulittle32_t *>(Contents->data() + TableEntryOffset); if (Word & 0x80000000) { SW.printString("Model", StringRef("Compact")); @@ -200,16 +200,17 @@ void PrinterContext<ET>::PrintIndexTable(unsigned SectionIndex, /// - The special bit pattern EXIDX_CANTUNWIND, indicating that associated /// frames cannot be unwound - const uint32_t *Data = reinterpret_cast<const uint32_t *>(Contents->data()); + const support::ulittle32_t *Data = + reinterpret_cast<const support::ulittle32_t *>(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) { |

