diff options
author | Fangrui Song <maskray@google.com> | 2019-06-20 10:15:11 +0000 |
---|---|---|
committer | Fangrui Song <maskray@google.com> | 2019-06-20 10:15:11 +0000 |
commit | 7064a437f85d0ad633120efa4e4f2b5bb6e4e04c (patch) | |
tree | a47623730536e1c4b40c13ebaf963ff0d5d0422d /llvm/tools/llvm-nm/llvm-nm.cpp | |
parent | c230eea2f349533468e14672eee94c2016476784 (diff) | |
download | bcm5719-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.cpp | 19 |
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) { |