From: Tim Northover Date: Tue, 9 Sep 2014 10:45:06 +0000 (+0000) Subject: llvm-objdump: don't crash when __compact_unwind has no relocs. X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=4faf24b6b719eedc2b7dcc8b8047deb4774d4a3f;p=oota-llvm.git llvm-objdump: don't crash when __compact_unwind has no relocs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@217433 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/test/tools/llvm-objdump/Inputs/unwind-info-no-relocs.macho-x86_64 b/test/tools/llvm-objdump/Inputs/unwind-info-no-relocs.macho-x86_64 new file mode 100755 index 00000000000..a1fd6874035 Binary files /dev/null and b/test/tools/llvm-objdump/Inputs/unwind-info-no-relocs.macho-x86_64 differ diff --git a/test/tools/llvm-objdump/macho-unwind-info-no-relocs.test b/test/tools/llvm-objdump/macho-unwind-info-no-relocs.test new file mode 100644 index 00000000000..3adad658c08 --- /dev/null +++ b/test/tools/llvm-objdump/macho-unwind-info-no-relocs.test @@ -0,0 +1,8 @@ +# RUN: llvm-objdump -unwind-info %p/Inputs/unwind-info-no-relocs.macho-x86_64 2>/dev/null | FileCheck %s + +# Make sure we can deal with __compact_unwind sections that don't have helpful +# relocations. + +# CHECK: Contents of __compact_unwind section: +# CHECK: Entry at offset 0x0: +# CHECK: start: 0x100000f7e diff --git a/tools/llvm-objdump/MachODump.cpp b/tools/llvm-objdump/MachODump.cpp index 18492142240..34933eb7071 100644 --- a/tools/llvm-objdump/MachODump.cpp +++ b/tools/llvm-objdump/MachODump.cpp @@ -650,6 +650,9 @@ static void printUnwindRelocDest(const MachOObjectFile *Obj, StringRef Name; uint64_t Addend; + if (!Reloc.getObjectFile()) + return; + findUnwindRelocNameAddend(Obj, Symbols, Reloc, Addr, Name, Addend); outs() << Name;