xref: /minix3/external/bsd/llvm/dist/llvm/test/MC/ELF/section-sym.s (revision 0a6a1f1d05b60e214de2f05a7310ddd1f0e590e7)
1// RUN: llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu %s -o - | llvm-readobj -s -t -r --expand-relocs | FileCheck %s
2
3.section foo, "aG", @progbits, f1, comdat
4.section foo, "G", @progbits, f2, comdat
5.section bar
6.long foo
7
8// Test that the relocation points to the first section foo.
9
10// The first seciton foo has index 6
11// CHECK:      Section {
12// CHECK:        Index:   6
13// CHECK-NEXT:   Name:    foo (28)
14// CHECK-NEXT:   Type:    SHT_PROGBITS (0x1)
15// CHECK-NEXT:   Flags [ (0x202)
16// CHECK-NEXT:     SHF_ALLOC (0x2)
17// CHECK-NEXT:     SHF_GROUP (0x200)
18// CHECK-NEXT:   ]
19// CHECK-NEXT:   Address:         0x0
20// CHECK-NEXT:   Offset:  0x50
21// CHECK-NEXT:   Size:    0
22// CHECK-NEXT:   Link:    0
23// CHECK-NEXT:   Info:    0
24// CHECK-NEXT:   AddressAlignment:        1
25// CHECK-NEXT:   EntrySize:       0
26// CHECK-NEXT: }
27// CHECK-NEXT: Section {
28// CHECK-NEXT:   Index:   7
29// CHECK-NEXT:   Name:    foo (28)
30// CHECK-NEXT:   Type:    SHT_PROGBITS (0x1)
31// CHECK-NEXT:   Flags [ (0x200)
32// CHECK-NEXT:     SHF_GROUP (0x200)
33// CHECK-NEXT:   ]
34// CHECK-NEXT:   Address:         0x0
35// CHECK-NEXT:   Offset:  0x50
36// CHECK-NEXT:   Size:    0
37// CHECK-NEXT:   Link:    0
38// CHECK-NEXT:   Info:    0
39// CHECK-NEXT:   AddressAlignment:        1
40// CHECK-NEXT:   EntrySize:       0
41// CHECK-NEXT: }
42
43// The relocation points to symbol 6
44// CHECK:      Relocations [
45// CHECK-NEXT:   Section (9) .relabar {
46// CHECK-NEXT:     Relocation {
47// CHECK-NEXT:       Offset:  0x0
48// CHECK-NEXT:       Type:    R_X86_64_32 (10)
49// CHECK-NEXT:       Symbol:  foo (6)
50// CHECK-NEXT:       Addend:  0x0
51// CHECK-NEXT:     }
52// CHECK-NEXT:   }
53// CHECK-NEXT: ]
54
55
56// The symbol 6 corresponds section 6
57// CHECK: Symbols [
58
59// symbol 0
60// CHECK-NOT: Name
61// CHECK: Name:
62
63// symbol 1
64// CHECK-NOT: Name
65// CHECK: Name:    f1
66
67// symbol 2
68// CHECK-NOT: Name
69// CHECK: Name:    f2
70
71// symbol 3
72// CHECK-NOT: Name
73// CHECK: Name:    .text
74
75// symbol 4
76// CHECK-NOT: Name
77// CHECK: Name:    .data
78
79// symbol 5
80// CHECK-NOT: Name
81// CHECK: Name:    .bss
82
83// symbol 6
84// CHECK-NOT: Name
85// CHECK: Name:    foo
86// CHECK: Section: foo (0x6)
87
88// symbol 7
89// CHECK-NOT: Name
90// CHECK: Name:    foo
91// CHECK: Section: foo (0x7)
92