From b201cf8883a8669c78f20533a2c47b6a92142a78 Mon Sep 17 00:00:00 2001 From: Nick Kledzik Date: Mon, 30 Jun 2014 20:44:47 +0000 Subject: [PATCH] [mach-o] x86_64 relocation code review fixes llvm-svn: 212068 --- lld/lib/ReaderWriter/MachO/MachONormalizedFileToAtoms.cpp | 5 ++--- lld/lib/ReaderWriter/MachO/ReferenceKinds.cpp | 5 +++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/lld/lib/ReaderWriter/MachO/MachONormalizedFileToAtoms.cpp b/lld/lib/ReaderWriter/MachO/MachONormalizedFileToAtoms.cpp index 56c5f44..417cabc 100644 --- a/lld/lib/ReaderWriter/MachO/MachONormalizedFileToAtoms.cpp +++ b/lld/lib/ReaderWriter/MachO/MachONormalizedFileToAtoms.cpp @@ -405,7 +405,7 @@ std::error_code processSection(DefinedAtom::ContentType atomType, size = is64 ? 32 : 20; break; case atomizeCFString: - // Break section up into compact unwind entries. + // Break section up into NS/CFString objects. size = is64 ? 32 : 16; break; case atomizeAtSymbols: @@ -505,8 +505,7 @@ std::error_code convertRelocs(const Section §ion, MachODefinedAtom *inAtom = file.findAtomCoveringAddress(section, reloc.offset, &offsetInAtom); - if (!inAtom) - return make_dynamic_error_code(Twine("no atom at r_address")); + assert(inAtom && "r_address in range, should have found atom"); uint64_t fixupAddress = section.address + reloc.offset; const lld::Atom *target = nullptr; diff --git a/lld/lib/ReaderWriter/MachO/ReferenceKinds.cpp b/lld/lib/ReaderWriter/MachO/ReferenceKinds.cpp index cb450203..fe9caec 100644 --- a/lld/lib/ReaderWriter/MachO/ReferenceKinds.cpp +++ b/lld/lib/ReaderWriter/MachO/ReferenceKinds.cpp @@ -135,7 +135,7 @@ const Registry::KindStrings KindHandler_x86_64::kindStrings[] = { LLD_KIND_STRING_ENTRY(delta64Anon), LLD_KIND_STRING_END }; - + bool KindHandler_x86_64::isCallSite(const Reference &ref) { if (ref.kindNamespace() != Reference::KindNamespace::mach_o) return false; @@ -147,7 +147,8 @@ bool KindHandler_x86_64::isPointer(const Reference &ref) { if (ref.kindNamespace() != Reference::KindNamespace::mach_o) return false; assert(ref.kindArch() == Reference::KindArch::x86_64); - return (ref.kindValue() == pointer64); + Reference::KindValue kind = ref.kindValue(); + return (kind == pointer64 || kind == pointer64Anon); } bool KindHandler_x86_64::isLazyImmediate(const Reference &ref) { -- 2.7.4