diff options
author | George Wright <wrightgeorge@google.com> | 2022-09-13 22:20:54 +0000 |
---|---|---|
committer | David Blaikie <dblaikie@gmail.com> | 2022-09-13 22:30:51 +0000 |
commit | 13f1bc41888e7d6555c532ba5fa925b9fe3e6b2f (patch) | |
tree | 27b81d8d08e38728037bd4dec30bafa84d35d89b /llvm/lib/DebugInfo/Symbolize/SymbolizableObjectFile.cpp | |
parent | 78865050620e6b6b90be7e868ffe5d5e67159856 (diff) | |
download | llvm-13f1bc41888e7d6555c532ba5fa925b9fe3e6b2f.zip llvm-13f1bc41888e7d6555c532ba5fa925b9fe3e6b2f.tar.gz llvm-13f1bc41888e7d6555c532ba5fa925b9fe3e6b2f.tar.bz2 |
Don't populate the symbol table with symbols that don't belong to a section with the flag SHF_ALLOC
When populating the symbol table for an ELF object file, don't insert any symbols that come from ELF sections which don't have runtime allocated memory (typically debugging symbols).
Reviewed By: dblaikie
Differential Revision: https://reviews.llvm.org/D133795
Diffstat (limited to 'llvm/lib/DebugInfo/Symbolize/SymbolizableObjectFile.cpp')
-rw-r--r-- | llvm/lib/DebugInfo/Symbolize/SymbolizableObjectFile.cpp | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/llvm/lib/DebugInfo/Symbolize/SymbolizableObjectFile.cpp b/llvm/lib/DebugInfo/Symbolize/SymbolizableObjectFile.cpp index d8ee926..5c65742 100644 --- a/llvm/lib/DebugInfo/Symbolize/SymbolizableObjectFile.cpp +++ b/llvm/lib/DebugInfo/Symbolize/SymbolizableObjectFile.cpp @@ -168,6 +168,11 @@ Error SymbolizableObjectFile::addSymbol(const SymbolRef &Symbol, return SymbolTypeOrErr.takeError(); SymbolRef::Type SymbolType = *SymbolTypeOrErr; if (Obj.isELF()) { + // Ignore any symbols coming from sections that don't have runtime + // allocated memory. + if ((elf_section_iterator(*Sec)->getFlags() & ELF::SHF_ALLOC) == 0) + return Error::success(); + // Allow function and data symbols. Additionally allow STT_NONE, which are // common for functions defined in assembly. uint8_t Type = ELFSymbolRef(Symbol).getELFType(); |