[ThinLTO] Add code comment. NFC
[llvm-complete.git] / test / MC / ELF / section-sym.s
blobc97de12f07f2bc57c40daf5ea1c733b11299e4f2
1 // RUN: llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu %s -o - | llvm-readobj -S --symbols -r --expand-relocs | FileCheck %s
3 .section foo, "aG", @progbits, f1, comdat
4 .section foo, "G", @progbits, f2, comdat
5 .section bar
6 .long foo
8 // Test that the relocation points to the first section foo.
10 // The first seciton foo has index 6
11 // CHECK: Section {
12 // CHECK: Index: 4
13 // CHECK-NEXT: Name: foo
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:
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: Section {
28 // CHECK: Index: 6
29 // CHECK-NEXT: Name: foo
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:
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: }
43 // The relocation points to symbol 3
44 // CHECK: Relocations [
45 // CHECK-NEXT: Section ({{.*}}) .relabar {
46 // CHECK-NEXT: Relocation {
47 // CHECK-NEXT: Offset: 0x0
48 // CHECK-NEXT: Type: R_X86_64_32 (10)
49 // CHECK-NEXT: Symbol: foo (3)
50 // CHECK-NEXT: Addend: 0x0
51 // CHECK-NEXT: }
52 // CHECK-NEXT: }
53 // CHECK-NEXT: ]
55 // Symbol 3 is section 6
56 // CHECK: Symbols [
57 // CHECK-NEXT: Symbol {
58 // CHECK-NEXT: Name: (0)
59 // CHECK-NEXT: Value: 0x0
60 // CHECK-NEXT: Size: 0
61 // CHECK-NEXT: Binding: Local (0x0)
62 // CHECK-NEXT: Type: None (0x0)
63 // CHECK-NEXT: Other: 0
64 // CHECK-NEXT: Section: Undefined (0x0)
65 // CHECK-NEXT: }
66 // CHECK-NEXT: Symbol {
67 // CHECK-NEXT: Name: f1
68 // CHECK-NEXT: Value: 0x0
69 // CHECK-NEXT: Size: 0
70 // CHECK-NEXT: Binding: Local (0x0)
71 // CHECK-NEXT: Type: None (0x0)
72 // CHECK-NEXT: Other: 0
73 // CHECK-NEXT: Section: .group
74 // CHECK-NEXT: }
75 // CHECK-NEXT: Symbol {
76 // CHECK-NEXT: Name: f2
77 // CHECK-NEXT: Value: 0x0
78 // CHECK-NEXT: Size: 0
79 // CHECK-NEXT: Binding: Local (0x0)
80 // CHECK-NEXT: Type: None (0x0)
81 // CHECK-NEXT: Other: 0
82 // CHECK-NEXT: Section: .group
83 // CHECK-NEXT: }
84 // CHECK-NEXT: Symbol {
85 // CHECK-NEXT: Name: foo (0)
86 // CHECK-NEXT: Value: 0x0
87 // CHECK-NEXT: Size: 0
88 // CHECK-NEXT: Binding: Local (0x0)
89 // CHECK-NEXT: Type: Section (0x3)
90 // CHECK-NEXT: Other: 0
91 // CHECK-NEXT: Section: foo (0x4)
92 // CHECK-NEXT: }
93 // CHECK-NEXT: ]