diff options
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(); |