summaryrefslogtreecommitdiffstats
path: root/lld/ELF/InputFiles.cpp
diff options
context:
space:
mode:
authorRafael Espindola <rafael.espindola@gmail.com>2015-08-10 15:12:17 +0000
committerRafael Espindola <rafael.espindola@gmail.com>2015-08-10 15:12:17 +0000
commitd8340dae0cd2de03bd4668050e8f6fdea8201091 (patch)
tree8b779323c07aeac4e866dbecf51ca2d943f18c50 /lld/ELF/InputFiles.cpp
parent1d3c9b54fb7876cba8637b20cbb07ca33a4956c0 (diff)
downloadbcm5719-llvm-d8340dae0cd2de03bd4668050e8f6fdea8201091.tar.gz
bcm5719-llvm-d8340dae0cd2de03bd4668050e8f6fdea8201091.zip
Don't depend on getDotSymtabSec. It is going away.
llvm-svn: 244451
Diffstat (limited to 'lld/ELF/InputFiles.cpp')
-rw-r--r--lld/ELF/InputFiles.cpp5
1 files changed, 4 insertions, 1 deletions
diff --git a/lld/ELF/InputFiles.cpp b/lld/ELF/InputFiles.cpp
index a5f84320ca3..ef4333ff9d8 100644
--- a/lld/ELF/InputFiles.cpp
+++ b/lld/ELF/InputFiles.cpp
@@ -41,6 +41,10 @@ template <class ELFT> void elf2::ObjectFile<ELFT>::initializeChunks() {
uint64_t Size = ELFObj->getNumSections();
Chunks.reserve(Size);
for (const Elf_Shdr &Sec : ELFObj->sections()) {
+ if (Sec.sh_type == SHT_SYMTAB) {
+ Symtab = &Sec;
+ continue;
+ }
if (Sec.sh_flags & SHF_ALLOC) {
auto *C = new (Alloc) SectionChunk<ELFT>(this->getObj(), &Sec);
Chunks.push_back(C);
@@ -49,7 +53,6 @@ template <class ELFT> void elf2::ObjectFile<ELFT>::initializeChunks() {
}
template <class ELFT> void elf2::ObjectFile<ELFT>::initializeSymbols() {
- const Elf_Shdr *Symtab = ELFObj->getDotSymtabSec();
ErrorOr<StringRef> StringTableOrErr =
ELFObj->getStringTableForSymtab(*Symtab);
error(StringTableOrErr.getError());
OpenPOWER on IntegriCloud