[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