aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/DebugInfo/Symbolize/SymbolizableObjectFile.cpp
diff options
context:
space:
mode:
authorDimitry Andric <dim@FreeBSD.org>2023-02-11 12:38:04 +0000
committerDimitry Andric <dim@FreeBSD.org>2023-02-11 12:38:11 +0000
commite3b557809604d036af6e00c60f012c2025b59a5e (patch)
tree8a11ba2269a3b669601e2fd41145b174008f4da8 /llvm/lib/DebugInfo/Symbolize/SymbolizableObjectFile.cpp
parent08e8dd7b9db7bb4a9de26d44c1cbfd24e869c014 (diff)
Diffstat (limited to 'llvm/lib/DebugInfo/Symbolize/SymbolizableObjectFile.cpp')
-rw-r--r--llvm/lib/DebugInfo/Symbolize/SymbolizableObjectFile.cpp5
1 files changed, 5 insertions, 0 deletions
diff --git a/llvm/lib/DebugInfo/Symbolize/SymbolizableObjectFile.cpp b/llvm/lib/DebugInfo/Symbolize/SymbolizableObjectFile.cpp
index d8ee9264b64f..5c65742a39f5 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();