Notation: dst is t->getThunkTargetSym()->getVA()
On AArch64, when src-0x8000000-r_addend <= dst < src-0x8000000, the condition
target->inBranchRange(rel.type, src, rel.sym->getVA(rel.addend)) may
incorrectly consider a thunk reusable.
rel.addend = -getPCBias(rel.type) resets the addend to 0 for AArch64/PPC
and the zero addend is used by rel.sym->getVA(rel.addend) to check
out-of-range relocations.
See the test for a case this computation is wrong:
error: a.o:(.text_high+0x4): relocation R_AARCH64_JUMP26 out of range: -134217732 is not in [-134217728, 134217727]
I have seen a real world case with r_addend=19960.