[llvm-objdump] Update error message and add test case for mach-o file with bad librar...
authorNick Kledzik <kledzik@apple.com>
Tue, 14 Oct 2014 23:29:38 +0000 (23:29 +0000)
committerNick Kledzik <kledzik@apple.com>
Tue, 14 Oct 2014 23:29:38 +0000 (23:29 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@219746 91177308-0d34-0410-b5e6-96231b3b80d8

test/tools/llvm-objdump/Inputs/bad-ordinal.macho-x86_64 [new file with mode: 0755]
test/tools/llvm-objdump/macho-bad-ordinal.test [new file with mode: 0644]
tools/llvm-objdump/MachODump.cpp

diff --git a/test/tools/llvm-objdump/Inputs/bad-ordinal.macho-x86_64 b/test/tools/llvm-objdump/Inputs/bad-ordinal.macho-x86_64
new file mode 100755 (executable)
index 0000000..3ab6227
Binary files /dev/null and b/test/tools/llvm-objdump/Inputs/bad-ordinal.macho-x86_64 differ
diff --git a/test/tools/llvm-objdump/macho-bad-ordinal.test b/test/tools/llvm-objdump/macho-bad-ordinal.test
new file mode 100644 (file)
index 0000000..16badcc
--- /dev/null
@@ -0,0 +1,6 @@
+# RUN: llvm-objdump -macho -bind -lazy-bind %p/Inputs/bad-ordinal.macho-x86_64 \
+# RUN:   | FileCheck %s 
+
+
+# CHECK: __DATA   __nl_symbol_ptr    0x100001000 pointer         0 <<bad library ordinal>> dyld_stub_binder
+# CHECK: __DATA   __la_symbol_ptr    0x100001010 <<bad library ordinal>> _printf
index f4cd08b039f0b7795047aeb5ce6e6571d5bc7f4f..c881ccd874f62c1dcf4eab7b7bf9c769d56b2621 100644 (file)
@@ -2802,7 +2802,7 @@ static StringRef ordinalName(const object::MachOObjectFile *Obj, int Ordinal) {
       std::error_code EC = Obj->getLibraryShortNameByIndex(Ordinal-1, 
                                                            DylibName);
       if (EC)
-        return "<<ordinal too big>>";
+        return "<<bad library ordinal>>";
       return DylibName;
     }
   }