[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
Tue Jan 2 13:04:20 PST 2018
mtrent updated this revision to Diff 128451.
mtrent added a comment.
Updating change request with review feedback.
Main change is to rewrite the lit test to exactly match whole lines of input.
Also added a comment explaining how the test binary was formed.
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,9 @@
Expected<StringRef> MachOObjectFile::getSymbolName(DataRefImpl Symb) const {
StringRef StringTable = getStringTableData();
MachO::nlist_base Entry = getSymbolTableEntryBase(*this, Symb);
+ // contents of the StringTable at n_strx 0 are not defined
+ if (Entry.n_strx == 0)
+ 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.128451.patch
Type: text/x-patch
Size: 1375 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20180102/4c429b58/attachment.bin>
More information about the llvm-commits
mailing list