aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/DebugInfo/Symbolize/SymbolizableObjectFile.cpp
diff options
context:
space:
mode:
authorFangrui Song <i@maskray.me>2021-02-12 11:04:20 -0800
committerFangrui Song <i@maskray.me>2021-02-12 11:04:20 -0800
commita7ceef9254ad1ec112906f53ac9cae2f0a37e4bb (patch)
tree38a6d8c333b09f37edda8effb0801ffb3e464128 /llvm/lib/DebugInfo/Symbolize/SymbolizableObjectFile.cpp
parent656674a7c43305dbf0b4234f1086cc88f7f4e4fb (diff)
downloadllvm-a7ceef9254ad1ec112906f53ac9cae2f0a37e4bb.zip
llvm-a7ceef9254ad1ec112906f53ac9cae2f0a37e4bb.tar.gz
llvm-a7ceef9254ad1ec112906f53ac9cae2f0a37e4bb.tar.bz2
DebugInfo/Symbolize: Exclude ARM mapping symbols for .symtab symbolization after D95916
Their names don't convey much information, so they should be excluded. The behavior matches addr2line. Differential Revision: https://reviews.llvm.org/D96617
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 4a9b119e..d751999 100644
--- a/llvm/lib/DebugInfo/Symbolize/SymbolizableObjectFile.cpp
+++ b/llvm/lib/DebugInfo/Symbolize/SymbolizableObjectFile.cpp
@@ -174,6 +174,11 @@ Error SymbolizableObjectFile::addSymbol(const SymbolRef &Symbol,
if (Type != ELF::STT_NOTYPE && Type != ELF::STT_FUNC &&
Type != ELF::STT_OBJECT && Type != ELF::STT_GNU_IFUNC)
return Error::success();
+ // Some STT_NOTYPE symbols are not desired. This excludes STT_SECTION and
+ // ARM mapping symbols.
+ uint32_t Flags = cantFail(Symbol.getFlags());
+ if (Flags & SymbolRef::SF_FormatSpecific)
+ return Error::success();
} else if (SymbolType != SymbolRef::ST_Function &&
SymbolType != SymbolRef::ST_Data) {
return Error::success();