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