AArch64: work around ld64 bug more aggressively.
[oota-llvm.git] / test / MC / MachO / AArch64 / ld64-workaround.s
1 ; RUN: llvm-mc -triple arm64-apple-darwin10 %s -filetype=obj -o - | llvm-readobj -r --expand-relocs | FileCheck %s
2
3 ; Test that we produce an external relocation. This is a known and temporary bug
4 ; in ld64, where it mishandles pointer-sized internal relocations. We should be
5 ; able to remove this entirely soon.
6
7 // CHECK:      Relocations [
8 // CHECK-NEXT:   Section __data {
9 // CHECK-NEXT:     Relocation {
10 // CHECK-NEXT:       Offset: 0x18
11 // CHECK-NEXT:       PCRel: 0
12 // CHECK-NEXT:       Length: 3
13 // CHECK-NEXT:       Extern: 1
14 // CHECK-NEXT:       Type: ARM64_RELOC_UNSIGNED (0)
15 // CHECK-NEXT:       Symbol: Llit16
16 // CHECK-NEXT:       Scattered: 0
17 // CHECK-NEXT:     }
18 // CHECK-NEXT:     Relocation {
19 // CHECK-NEXT:       Offset: 0x10
20 // CHECK-NEXT:       PCRel: 0
21 // CHECK-NEXT:       Length: 3
22 // CHECK-NEXT:       Extern: 1
23 // CHECK-NEXT:       Type: ARM64_RELOC_UNSIGNED (0)
24 // CHECK-NEXT:       Symbol: Llit8
25 // CHECK-NEXT:       Scattered: 0
26 // CHECK-NEXT:     }
27 // CHECK-NEXT:     Relocation {
28 // CHECK-NEXT:       Offset: 0x8
29 // CHECK-NEXT:       PCRel: 0
30 // CHECK-NEXT:       Length: 3
31 // CHECK-NEXT:       Extern: 1
32 // CHECK-NEXT:       Type: ARM64_RELOC_UNSIGNED (0)
33 // CHECK-NEXT:       Symbol: Llit4
34 // CHECK-NEXT:       Scattered: 0
35 // CHECK-NEXT:     }
36 // CHECK-NEXT:     Relocation {
37 // CHECK-NEXT:       Offset: 0x0
38 // CHECK-NEXT:       PCRel: 0
39 // CHECK-NEXT:       Length: 3
40 // CHECK-NEXT:       Extern: 1
41 // CHECK-NEXT:       Type: ARM64_RELOC_UNSIGNED (0)
42 // CHECK-NEXT:       Symbol: Lcfstring
43 // CHECK-NEXT:       Scattered: 0
44 // CHECK-NEXT:     }
45 // CHECK-NEXT:   }
46 // CHECK-NEXT: ]
47
48         .section        __DATA,__cfstring
49 Lcfstring:
50
51         .section        __DATA,__literal4,4byte_literals
52 Llit4:
53         .word 42
54
55         .section        __DATA,__literal8,8byte_literals
56 Llit8:
57         .quad 42
58
59         .section        __DATA,__literal16,16byte_literals
60 Llit16:
61         .quad 42
62         .quad 42
63
64         .section        __DATA,__data
65         .quad   Lcfstring
66         .quad   Llit4
67         .quad   Llit8
68         .quad   Llit16