diff options
Diffstat (limited to 'test/MC/MachO/x86_32-scattered-reloc-fallback.s')
-rw-r--r-- | test/MC/MachO/x86_32-scattered-reloc-fallback.s | 27 |
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') |