From: Fangrui Song Date: Fri, 26 Apr 2019 16:03:31 +0000 (+0000) Subject: [llvm-nm] Generalize symbol types 'N', 'n' and '?' X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=242f845edf2e454b9f44c4d483c28074b8830115;p=llvm [llvm-nm] Generalize symbol types 'N', 'n' and '?' git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@359312 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/tools/llvm-nm/llvm-nm.cpp b/tools/llvm-nm/llvm-nm.cpp index 8f4108d9d88..ebb2c3d06b9 100644 --- a/tools/llvm-nm/llvm-nm.cpp +++ b/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 Name = SymI->getName(); if (!Name) { consumeError(Name.takeError()); return '?'; } - return StringSwitch(*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) {