[PATCH] D63588: [llvm-nm] Generalize symbol types 'N' and 'n'
Fangrui Song via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Thu Jun 20 03:13:28 PDT 2019
This revision was automatically updated to reflect the committed changes.
Closed by commit rG7064a437f85d: [llvm-nm] Generalize ELF symbol types 'N' and 'n' (authored by MaskRay).
Changed prior to commit:
https://reviews.llvm.org/D63588?vs=205743&id=205771#toc
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D63588/new/
https://reviews.llvm.org/D63588
Files:
llvm/test/tools/llvm-nm/nonalloc.test
llvm/tools/llvm-nm/llvm-nm.cpp
Index: llvm/tools/llvm-nm/llvm-nm.cpp
===================================================================
--- llvm/tools/llvm-nm/llvm-nm.cpp
+++ llvm/tools/llvm-nm/llvm-nm.cpp
@@ -907,22 +907,17 @@
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) {
Index: llvm/test/tools/llvm-nm/nonalloc.test
===================================================================
--- llvm/test/tools/llvm-nm/nonalloc.test
+++ llvm/test/tools/llvm-nm/nonalloc.test
@@ -1,7 +1,11 @@
# RUN: yaml2obj %s -o %t
# RUN: llvm-nm --no-sort %t | FileCheck %s
-# CHECK: n debug_info_main
+# CHECK: N debug_info_main
+# CHECK: n readonly_local
+# CHECK: ? writable_local
+# CHECK: N readonly_global
+# CHECK: ? writable_global
!ELF
FileHeader:
@@ -12,6 +16,22 @@
Sections:
- Name: .debug_info
Type: SHT_PROGBITS
+ - Name: .readonly
+ Type: SHT_PROGBITS
+ - Name: .writable
+ Type: SHT_PROGBITS
+ Flags: [SHF_WRITE]
Symbols:
- Name: debug_info_main
Section: .debug_info
+ - Name: readonly_local
+ Section: .readonly
+ - Name: writable_local
+ Section: .writable
+
+ - Name: readonly_global
+ Binding: STB_GLOBAL
+ Section: .readonly
+ - Name: writable_global
+ Binding: STB_GLOBAL
+ Section: .writable
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D63588.205771.patch
Type: text/x-patch
Size: 1942 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20190620/fc04ee6a/attachment.bin>
More information about the llvm-commits
mailing list