summaryrefslogtreecommitdiffstats
path: root/llvm/tools/llvm-nm/llvm-nm.cpp
diff options
context:
space:
mode:
authorFangrui Song <maskray@google.com>2019-06-20 10:15:11 +0000
committerFangrui Song <maskray@google.com>2019-06-20 10:15:11 +0000
commit7064a437f85d0ad633120efa4e4f2b5bb6e4e04c (patch)
treea47623730536e1c4b40c13ebaf963ff0d5d0422d /llvm/tools/llvm-nm/llvm-nm.cpp
parentc230eea2f349533468e14672eee94c2016476784 (diff)
downloadbcm5719-llvm-7064a437f85d0ad633120efa4e4f2b5bb6e4e04c.tar.gz
bcm5719-llvm-7064a437f85d0ad633120efa4e4f2b5bb6e4e04c.zip
[llvm-nm] Generalize ELF symbol types 'N' and 'n'
Reviewed By: grimar, jhenderson Differential Revision: https://reviews.llvm.org/D63588 llvm-svn: 363918
Diffstat (limited to 'llvm/tools/llvm-nm/llvm-nm.cpp')
-rw-r--r--llvm/tools/llvm-nm/llvm-nm.cpp19
1 files changed, 7 insertions, 12 deletions
diff --git a/llvm/tools/llvm-nm/llvm-nm.cpp b/llvm/tools/llvm-nm/llvm-nm.cpp
index 08e0e104be1..ae9bf60baeb 100644
--- a/llvm/tools/llvm-nm/llvm-nm.cpp
+++ b/llvm/tools/llvm-nm/llvm-nm.cpp
@@ -907,22 +907,17 @@ static char getSymbolNMTypeChar(ELFObjectFileBase &Obj,
return 'b';
if (Flags & ELF::SHF_ALLOC)
return Flags & ELF::SHF_WRITE ? 'd' : 'r';
- }
- if (SymI->getELFType() == ELF::STT_SECTION) {
- Expected<StringRef> Name = SymI->getName();
- if (!Name) {
- consumeError(Name.takeError());
+ StringRef SecName;
+ if (SecI->getName(SecName))
return '?';
- }
- return StringSwitch<char>(*Name)
- .StartsWith(".debug", 'N')
- .StartsWith(".note", 'n')
- .StartsWith(".comment", 'n')
- .Default('?');
+ if (SecName.startswith(".debug"))
+ return 'N';
+ if (!(Flags & ELF::SHF_WRITE))
+ return 'n';
}
- return 'n';
+ return '?';
}
static char getSymbolNMTypeChar(COFFObjectFile &Obj, symbol_iterator I) {
OpenPOWER on IntegriCloud