6ad11343aec969f8765f6de0445135f09ceefd08
[oota-llvm.git] / test / MC / ELF / alias-reloc.s
1 // RUN: llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu %s -o - | elf-dump  | FileCheck %s
2
3 // Test that this produces a R_X86_64_PLT32 with bar.
4
5         .globl foo
6 foo:
7 bar = foo
8         .section zed, "", @progbits
9         call bar@PLT
10
11
12 // Test that this produres a relocation with bar2
13
14     .weak    foo2
15 foo2:
16     .weak    bar2
17     .set    bar2,foo2
18     .quad    bar2
19
20 // CHECK:       # Symbol 0x00000001
21 // CHECK-NEXT:  (('st_name', 0x00000005) # 'bar'
22 // CHECK-NEXT:   ('st_bind', 0x00000000)
23 // CHECK-NEXT:   ('st_type', 0x00000000)
24 // CHECK-NEXT:   ('st_other', 0x00000000)
25 // CHECK-NEXT:   ('st_shndx', 0x00000001)
26 // CHECK-NEXT:   ('st_value', 0x00000000)
27 // CHECK-NEXT:   ('st_size', 0x00000000)
28 // CHECK-NEXT:  ),
29
30 // CHECK:      # Symbol 0x00000006
31 // CHECK-NEXT: (('st_name', 0x0000000e) # 'bar2'
32 // CHECK-NEXT:  ('st_bind', 0x00000002)
33 // CHECK-NEXT:  ('st_type', 0x00000000)
34 // CHECK-NEXT:  ('st_other', 0x00000000)
35 // CHECK-NEXT:  ('st_shndx', 0x00000004)
36 // CHECK-NEXT:  ('st_value', 0x00000005)
37 // CHECK-NEXT:  ('st_size', 0x00000000)
38 // CHECK-NEXT: ),
39
40 // CHECK:       # Relocation 0x00000000
41 // CHECK-NEXT:  (('r_offset', 0x00000001)
42 // CHECK-NEXT:   ('r_sym', 0x00000001)
43 // CHECK-NEXT:   ('r_type', 0x00000004)
44 // CHECK-NEXT:   ('r_addend', 0xfffffffc)
45 // CHECK-NEXT:  ),
46
47 // CHECK:      # Relocation 0x00000001
48 // CHECK-NEXT: (('r_offset', 0x00000005)
49 // CHECK-NEXT:  ('r_sym', 0x00000006)
50 // CHECK-NEXT:  ('r_type', 0x00000001)
51 // CHECK-NEXT:  ('r_addend', 0x00000000)
52 // CHECK-NEXT: ),