[lld] r212068 - [mach-o] x86_64 relocation code review fixes

Nick Kledzik kledzik at apple.com
Mon Jun 30 13:44:48 PDT 2014


Author: kledzik
Date: Mon Jun 30 15:44:47 2014
New Revision: 212068

URL: http://llvm.org/viewvc/llvm-project?rev=212068&view=rev
Log:
[mach-o] x86_64 relocation code review fixes

Modified:
    lld/trunk/lib/ReaderWriter/MachO/MachONormalizedFileToAtoms.cpp
    lld/trunk/lib/ReaderWriter/MachO/ReferenceKinds.cpp

Modified: lld/trunk/lib/ReaderWriter/MachO/MachONormalizedFileToAtoms.cpp
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/MachO/MachONormalizedFileToAtoms.cpp?rev=212068&r1=212067&r2=212068&view=diff
==============================================================================
--- lld/trunk/lib/ReaderWriter/MachO/MachONormalizedFileToAtoms.cpp (original)
+++ lld/trunk/lib/ReaderWriter/MachO/MachONormalizedFileToAtoms.cpp Mon Jun 30 15:44:47 2014
@@ -405,7 +405,7 @@ std::error_code processSection(DefinedAt
         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 Sect
     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;

Modified: lld/trunk/lib/ReaderWriter/MachO/ReferenceKinds.cpp
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/MachO/ReferenceKinds.cpp?rev=212068&r1=212067&r2=212068&view=diff
==============================================================================
--- lld/trunk/lib/ReaderWriter/MachO/ReferenceKinds.cpp (original)
+++ lld/trunk/lib/ReaderWriter/MachO/ReferenceKinds.cpp Mon Jun 30 15:44:47 2014
@@ -135,7 +135,7 @@ const Registry::KindStrings KindHandler_
   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
   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) {





More information about the llvm-commits mailing list