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:
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;
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;
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) {