summaryrefslogtreecommitdiffstats
path: root/llvm/tools/llvm-nm/llvm-nm.cpp
diff options
context:
space:
mode:
authorFangrui Song <maskray@google.com>2019-04-26 16:03:31 +0000
committerFangrui Song <maskray@google.com>2019-04-26 16:03:31 +0000
commit5f184f17800ea2ac27be5e4ab540cb94a46e80c7 (patch)
treefa9f8eb2e99a002a39bb596b7088a3af7f699de3 /llvm/tools/llvm-nm/llvm-nm.cpp
parent0bf06a8f59b0074a60871865e828d92db8930c59 (diff)
downloadbcm5719-llvm-5f184f17800ea2ac27be5e4ab540cb94a46e80c7.tar.gz
bcm5719-llvm-5f184f17800ea2ac27be5e4ab540cb94a46e80c7.zip
[llvm-nm] Generalize symbol types 'N', 'n' and '?'
llvm-svn: 359312
Diffstat (limited to 'llvm/tools/llvm-nm/llvm-nm.cpp')
-rw-r--r--llvm/tools/llvm-nm/llvm-nm.cpp14
1 files changed, 5 insertions, 9 deletions
diff --git a/llvm/tools/llvm-nm/llvm-nm.cpp b/llvm/tools/llvm-nm/llvm-nm.cpp
index 8f4108d9d88..ebb2c3d06b9 100644
--- a/llvm/tools/llvm-nm/llvm-nm.cpp
+++ b/llvm/tools/llvm-nm/llvm-nm.cpp
@@ -944,22 +944,18 @@ static char getSymbolNMTypeChar(ELFObjectFileBase &Obj,
return 't';
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());
return '?';
}
- return StringSwitch<char>(*Name)
- .StartsWith(".debug", 'N')
- .StartsWith(".note", 'n')
- .StartsWith(".comment", 'n')
- .Default('?');
+ if (Name->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