diff options
author | Rafael Espindola <rafael.espindola@gmail.com> | 2015-11-05 01:10:15 +0000 |
---|---|---|
committer | Rafael Espindola <rafael.espindola@gmail.com> | 2015-11-05 01:10:15 +0000 |
commit | e61a9023713ab0c4e3d1ddde65332c5081aaf97c (patch) | |
tree | 8b9dfd4ca2131f9bf1dfc3a5ec796cf042fa62fb /llvm/lib/Target/ARM | |
parent | ba5757da64a7dd1496a0c4568e879d7b5755b584 (diff) | |
download | bcm5719-llvm-e61a9023713ab0c4e3d1ddde65332c5081aaf97c.tar.gz bcm5719-llvm-e61a9023713ab0c4e3d1ddde65332c5081aaf97c.zip |
Go back to producing relocations for out of range symbols.
This brings back the behavior from before r252090 for out of range symbols.
Should bring some arm bots back.
llvm-svn: 252119
Diffstat (limited to 'llvm/lib/Target/ARM')
-rw-r--r-- | llvm/lib/Target/ARM/MCTargetDesc/ARMAsmBackend.cpp | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/llvm/lib/Target/ARM/MCTargetDesc/ARMAsmBackend.cpp b/llvm/lib/Target/ARM/MCTargetDesc/ARMAsmBackend.cpp index fd678fb132e..7a0a089b35f 100644 --- a/llvm/lib/Target/ARM/MCTargetDesc/ARMAsmBackend.cpp +++ b/llvm/lib/Target/ARM/MCTargetDesc/ARMAsmBackend.cpp @@ -639,13 +639,11 @@ void ARMAsmBackend::processFixupValue(const MCAssembler &Asm, // If the symbol is external the linker will handle it. // FIXME: Should we handle it as an optimization? - if (Sym->isExternal()) { + + // If the symbol is out of range, produce a relocation and hope the + // linker can handle it. GNU AS produces an error in this case. + if (Sym->isExternal() || Value >= 0x400004) IsResolved = false; - } else { - if (Value >= 0x400004) - Asm.getContext().reportFatalError(Fixup.getLoc(), - "out of range for branch"); - } } // We must always generate a relocation for BL/BLX instructions if we have // a symbol to reference, as the linker relies on knowing the destination |