diff options
author | Fangrui Song <maskray@google.com> | 2019-04-26 16:03:31 +0000 |
---|---|---|
committer | Fangrui Song <maskray@google.com> | 2019-04-26 16:03:31 +0000 |
commit | 5f184f17800ea2ac27be5e4ab540cb94a46e80c7 (patch) | |
tree | fa9f8eb2e99a002a39bb596b7088a3af7f699de3 /llvm/tools/llvm-nm/llvm-nm.cpp | |
parent | 0bf06a8f59b0074a60871865e828d92db8930c59 (diff) | |
download | bcm5719-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.cpp | 14 |
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) { |