[PATCH] D41657: Do not look up symbol names when n_strx == 0
Michael Trent via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Wed Jan 3 15:11:26 PST 2018
mtrent updated this revision to Diff 128573.
mtrent marked an inline comment as done.
mtrent added a comment.
Updating comment based upon review feedback.
https://reviews.llvm.org/D41657
Files:
lib/Object/MachOObjectFile.cpp
test/tools/llvm-nm/X86/Inputs/macho-dwarf-x86_64
test/tools/llvm-nm/X86/macho-dwarf.test
Index: test/tools/llvm-nm/X86/macho-dwarf.test
===================================================================
--- /dev/null
+++ test/tools/llvm-nm/X86/macho-dwarf.test
@@ -0,0 +1,15 @@
+# This file was constructed from 3 trivial source files and linked with macOS's
+# ld64 linker.
+#
+# cc -gdwarf-2 -o foo.o -c foo.c
+# cc -gdwarf-2 -o bar.o -c bar.c
+# ld -r foo.o bar.o -o foobar.o
+# cc -gdwarf-2 -o baz foobar.o baz.c
+
+# RUN: llvm-nm -ap %p/Inputs/macho-dwarf-x86_64 | FileCheck -match-full-lines -strict-whitespace %s
+
+# CHECK:000000000000002a - 01 0000 ENSYM
+# CHECK:0000000000000010 - 01 0000 ENSYM
+# CHECK:000000000000000b - 01 0000 ENSYM
+
+
Index: lib/Object/MachOObjectFile.cpp
===================================================================
--- lib/Object/MachOObjectFile.cpp
+++ lib/Object/MachOObjectFile.cpp
@@ -1659,6 +1659,10 @@
Expected<StringRef> MachOObjectFile::getSymbolName(DataRefImpl Symb) const {
StringRef StringTable = getStringTableData();
MachO::nlist_base Entry = getSymbolTableEntryBase(*this, Symb);
+ if (Entry.n_strx == 0)
+ // A n_strx value of 0 indicates that no name is associated with a
+ // particular symbol table entry.
+ return StringRef();
const char *Start = &StringTable.data()[Entry.n_strx];
if (Start < getData().begin() || Start >= getData().end()) {
return malformedError("bad string index: " + Twine(Entry.n_strx) +
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D41657.128573.patch
Type: text/x-patch
Size: 1425 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20180103/74c48136/attachment.bin>
More information about the llvm-commits
mailing list