aboutsummaryrefslogtreecommitdiffstats
path: root/test/MC/MachO/x86_32-scattered-reloc-fallback.s
diff options
context:
space:
mode:
Diffstat (limited to 'test/MC/MachO/x86_32-scattered-reloc-fallback.s')
-rw-r--r--test/MC/MachO/x86_32-scattered-reloc-fallback.s27
1 files changed, 27 insertions, 0 deletions
diff --git a/test/MC/MachO/x86_32-scattered-reloc-fallback.s b/test/MC/MachO/x86_32-scattered-reloc-fallback.s
new file mode 100644
index 0000000..3de52b4
--- /dev/null
+++ b/test/MC/MachO/x86_32-scattered-reloc-fallback.s
@@ -0,0 +1,27 @@
+// RUN: llvm-mc -triple i386-apple-darwin9 %s -filetype=obj -o - | macho-dump --dump-section-data | FileCheck %s
+
+// rdar://15526046
+
+.text
+.globl _main
+_main:
+ .space 0x01020f55, 0x90
+bug:
+ movl $0, _key64b_9+4
+.section __TEXT, __padding
+ .space 0x515b91, 0
+.data
+ .space 0xa70, 0
+.globl _key64b_9
+_key64b_9:
+ .long 1
+ .long 2
+
+// The movl instruction above should produce this encoding where the address
+// of _key64b_9 is at 0x01537560. This is testing falling back from using a
+// scattered relocation to a normal relocation because the offset from the
+// start of the section is more than 24-bits. But need to get the item to
+// be relocated, in this case _key64b_9+4, value correct in the instruction.
+// 01020f55 c7056475530100000000 movl $0x0, 0x1537564
+
+// CHECK: 90c70564 75530100 000000')