[mach-o] x86_64 relocation code review fixes
authorNick Kledzik <kledzik@apple.com>
Mon, 30 Jun 2014 20:44:47 +0000 (20:44 +0000)
committerNick Kledzik <kledzik@apple.com>
Mon, 30 Jun 2014 20:44:47 +0000 (20:44 +0000)
llvm-svn: 212068

lld/lib/ReaderWriter/MachO/MachONormalizedFileToAtoms.cpp
lld/lib/ReaderWriter/MachO/ReferenceKinds.cpp

index 56c5f44..417cabc 100644 (file)
@@ -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 &section,
     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;
index cb45020..fe9caec 100644 (file)
@@ -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) {