diff options
author | Nick Lewycky <nicholas@mxc.ca> | 2011-10-13 03:30:21 +0000 |
---|---|---|
committer | Nick Lewycky <nicholas@mxc.ca> | 2011-10-13 03:30:21 +0000 |
commit | f77dea13d7cd803b2e928808612cd0419e3f4122 (patch) | |
tree | ec4c43419c2d4de7a8981e1a5b7b6787f0e2598b /lib/Object/ELFObjectFile.cpp | |
parent | dec1b10161a3bc1b49ab8d35e1bd6488486dfd4a (diff) |
Elf_Word is not POD! Stop using it in a DenseMap.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141851 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Object/ELFObjectFile.cpp')
-rw-r--r-- | lib/Object/ELFObjectFile.cpp | 11 |
1 files changed, 4 insertions, 7 deletions
diff --git a/lib/Object/ELFObjectFile.cpp b/lib/Object/ELFObjectFile.cpp index 7add2d8a52..f30d6a0369 100644 --- a/lib/Object/ELFObjectFile.cpp +++ b/lib/Object/ELFObjectFile.cpp @@ -296,7 +296,7 @@ class ELFObjectFile : public ObjectFile { const Elf_Shdr *dot_strtab_sec; // Symbol header string table. Sections_t SymbolTableSections; IndexMap_t SymbolTableSectionsIndexMap; - DenseMap<const Elf_Sym*, Elf_Word> ExtendedSymbolTable; + DenseMap<const Elf_Sym*, ELF::Elf64_Word> ExtendedSymbolTable; /// @brief Map sections to an array of relocation sections that reference /// them sorted by section index. @@ -375,7 +375,7 @@ public: uint64_t getNumSections() const; uint64_t getStringTableIndex() const; - uint64_t getSymbolTableIndex(const Elf_Sym *symb) const; + ELF::Elf64_Word getSymbolTableIndex(const Elf_Sym *symb) const; const Elf_Shdr *getSection(const Elf_Sym *symb) const; }; } // end namespace @@ -433,7 +433,7 @@ error_code ELFObjectFile<target_endianness, is64Bits> } template<support::endianness target_endianness, bool is64Bits> -uint64_t ELFObjectFile<target_endianness, is64Bits> +ELF::Elf64_Word ELFObjectFile<target_endianness, is64Bits> ::getSymbolTableIndex(const Elf_Sym *symb) const { if (symb->st_shndx == ELF::SHN_XINDEX) return ExtendedSymbolTable.lookup(symb); @@ -444,11 +444,8 @@ template<support::endianness target_endianness, bool is64Bits> const typename ELFObjectFile<target_endianness, is64Bits>::Elf_Shdr * ELFObjectFile<target_endianness, is64Bits> ::getSection(const Elf_Sym *symb) const { - if (symb->st_shndx == ELF::SHN_XINDEX) { - if (!ExtendedSymbolTable.count(symb)) - return 0; + if (symb->st_shndx == ELF::SHN_XINDEX) return getSection(ExtendedSymbolTable.lookup(symb)); - } if (symb->st_shndx >= ELF::SHN_LORESERVE) return 0; return getSection(symb->st_shndx); |