1b7abea08409d4f15063b25e025f160a5469efd54Jim Grosbach// RUN: llvm-mc -triple i386-apple-darwin10 %s -filetype=obj -o - | macho-dump | FileCheck %s
2b7abea08409d4f15063b25e025f160a5469efd54Jim Grosbach
3b7abea08409d4f15063b25e025f160a5469efd54Jim Grosbach.space 0x1ed280
4b7abea08409d4f15063b25e025f160a5469efd54Jim Grosbach       .section        __DATA,__const
5b7abea08409d4f15063b25e025f160a5469efd54Jim Grosbach       .align  4
6b7abea08409d4f15063b25e025f160a5469efd54Jim Grosbach.space 0x5181020
7b7abea08409d4f15063b25e025f160a5469efd54Jim Grosbach_foo:
8b7abea08409d4f15063b25e025f160a5469efd54Jim Grosbach       .long   _bar
9b7abea08409d4f15063b25e025f160a5469efd54Jim Grosbach       .long   0
10b7abea08409d4f15063b25e025f160a5469efd54Jim Grosbach       .long   _bar+8
11b7abea08409d4f15063b25e025f160a5469efd54Jim Grosbach       .long   _bar+24
12b7abea08409d4f15063b25e025f160a5469efd54Jim Grosbach       .long   0
13b7abea08409d4f15063b25e025f160a5469efd54Jim Grosbach       .long   _bar+16
14b7abea08409d4f15063b25e025f160a5469efd54Jim Grosbach
15b7abea08409d4f15063b25e025f160a5469efd54Jim Grosbach.zerofill __DATA,__bss,__dummy,0x5d780
16b7abea08409d4f15063b25e025f160a5469efd54Jim Grosbach.zerofill __DATA,__bss,_bar,48,4
17b7abea08409d4f15063b25e025f160a5469efd54Jim Grosbach
18b7abea08409d4f15063b25e025f160a5469efd54Jim Grosbach// Normally scattered relocations are used for sym+offset expressions. When
19b7abea08409d4f15063b25e025f160a5469efd54Jim Grosbach// the value exceeds 24-bits, however, it's outside what MachO can encode,
20b7abea08409d4f15063b25e025f160a5469efd54Jim Grosbach// so the assembler falls back to non-scattered relocations.
21b7abea08409d4f15063b25e025f160a5469efd54Jim Grosbach// rdar://12358909
22b7abea08409d4f15063b25e025f160a5469efd54Jim Grosbach
23b7abea08409d4f15063b25e025f160a5469efd54Jim Grosbach// CHECK: ('_relocations', [
24b7abea08409d4f15063b25e025f160a5469efd54Jim Grosbach// CHECK:   # Relocation 0
25b7abea08409d4f15063b25e025f160a5469efd54Jim Grosbach// CHECK:   (('word-0', 0x5181034),
26b7abea08409d4f15063b25e025f160a5469efd54Jim Grosbach// CHECK:    ('word-1', 0x4000003)),
27b7abea08409d4f15063b25e025f160a5469efd54Jim Grosbach// CHECK:   # Relocation 1
28b7abea08409d4f15063b25e025f160a5469efd54Jim Grosbach// CHECK:   (('word-0', 0x518102c),
29b7abea08409d4f15063b25e025f160a5469efd54Jim Grosbach// CHECK:    ('word-1', 0x4000003)),
30b7abea08409d4f15063b25e025f160a5469efd54Jim Grosbach// CHECK:   # Relocation 2
31b7abea08409d4f15063b25e025f160a5469efd54Jim Grosbach// CHECK:   (('word-0', 0x5181028),
32b7abea08409d4f15063b25e025f160a5469efd54Jim Grosbach// CHECK:    ('word-1', 0x4000003)),
33b7abea08409d4f15063b25e025f160a5469efd54Jim Grosbach// CHECK:   # Relocation 3
34b7abea08409d4f15063b25e025f160a5469efd54Jim Grosbach// CHECK:   (('word-0', 0x5181020),
35b7abea08409d4f15063b25e025f160a5469efd54Jim Grosbach// CHECK:    ('word-1', 0x4000003)),
36b7abea08409d4f15063b25e025f160a5469efd54Jim Grosbach// CHECK: ])
37