summaryrefslogtreecommitdiff
path: root/lib/Target/ARM/MCTargetDesc
diff options
context:
space:
mode:
authorKevin Enderby <enderby@apple.com>2013-12-13 22:46:54 +0000
committerKevin Enderby <enderby@apple.com>2013-12-13 22:46:54 +0000
commit303a00ec48d35bf3ce4860fc141954efb3bfcd95 (patch)
tree6f73dd7af59a11376c73256bfc9ea7b27d3d7c6d /lib/Target/ARM/MCTargetDesc
parente670304f644f5996e3fe290557d9b0e707ad7b99 (diff)
downloadllvm-303a00ec48d35bf3ce4860fc141954efb3bfcd95.tar.gz
llvm-303a00ec48d35bf3ce4860fc141954efb3bfcd95.tar.bz2
llvm-303a00ec48d35bf3ce4860fc141954efb3bfcd95.tar.xz
Fixed a bug in getARMFixupKindMachOInfo() where three ARM fixup kinds
were falling into the cases for 24-bit branch kinds which are not 24-bit branches. The routine is to return false for fixups are expected to always be resolvable at assembly time. Which these three fixups are as they have limited displacement and are for local references within a function. rdar://15586725 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@197282 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/ARM/MCTargetDesc')
-rw-r--r--lib/Target/ARM/MCTargetDesc/ARMMachObjectWriter.cpp6
1 files changed, 5 insertions, 1 deletions
diff --git a/lib/Target/ARM/MCTargetDesc/ARMMachObjectWriter.cpp b/lib/Target/ARM/MCTargetDesc/ARMMachObjectWriter.cpp
index 1f681bac22..4ef18b4298 100644
--- a/lib/Target/ARM/MCTargetDesc/ARMMachObjectWriter.cpp
+++ b/lib/Target/ARM/MCTargetDesc/ARMMachObjectWriter.cpp
@@ -82,10 +82,14 @@ static bool getARMFixupKindMachOInfo(unsigned Kind, unsigned &RelocType,
Log2Size = llvm::Log2_32(8);
return true;
- // Handle 24-bit branch kinds.
+ // These fixups are expected to always be resolvable at assembly time and
+ // have no relocations supported.
case ARM::fixup_arm_ldst_pcrel_12:
case ARM::fixup_arm_pcrel_10:
case ARM::fixup_arm_adr_pcrel_12:
+ return false;
+
+ // Handle 24-bit branch kinds.
case ARM::fixup_arm_condbranch:
case ARM::fixup_arm_uncondbranch:
case ARM::fixup_arm_uncondbl: