xref: /llvm-project/llvm/test/MC/ELF/addrsig.s (revision d8162a7196b3916d3bb51b2597c9e417e4132150)
1// RUN: llvm-mc -filetype=asm -triple x86_64-pc-linux-gnu %s -o - | FileCheck --check-prefix=ASM %s
2// RUN: llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu %s -o - | llvm-readobj -S --symbols --sd --addrsig - | FileCheck %s
3// RUN: llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu %s -split-dwarf-file %t.dwo -o - | llvm-readobj -S --symbols --sd --addrsig - | FileCheck %s
4// RUN: llvm-readobj -S %t.dwo | FileCheck --check-prefix=DWO %s
5
6// CHECK:        Name: .llvm_addrsig
7// CHECK-NEXT:   Type: SHT_LLVM_ADDRSIG (0x6FFF4C03)
8// CHECK-NEXT:   Flags [ (0x80000000)
9// CHECK-NEXT:     SHF_EXCLUDE (0x80000000)
10// CHECK-NEXT:   ]
11// CHECK-NEXT:   Address:
12// CHECK-NEXT:   Offset:
13// CHECK-NEXT:   Size: 4
14// CHECK-NEXT:   Link: 4
15// CHECK-NEXT:   Info: 0
16// CHECK-NEXT:   AddressAlignment: 1
17// CHECK-NEXT:   EntrySize: 0
18// CHECK-NEXT:   SectionData (
19// CHECK-NEXT:     0000: 03050201
20// CHECK-NEXT:   )
21// CHECK-NEXT: }
22// CHECK-NEXT: Section {
23// CHECK-NEXT:   Index: 4
24// CHECK-NEXT:   Name: .symtab
25
26// CHECK:      Symbol {
27// CHECK:      Symbol {
28// CHECK-NEXT:   Name:
29// CHECK-NEXT:   Value:
30// CHECK-NEXT:   Size:
31// CHECK-NEXT:   Binding:
32// CHECK-NEXT:   Type:
33// CHECK-NEXT:   Other:
34// CHECK-NEXT:   Section: [[SEC:.*]]
35// CHECK-NEXT: }
36// CHECK-NEXT: Symbol {
37// CHECK-NEXT:   Name: local
38// CHECK-NEXT:   Value:
39// CHECK-NEXT:   Size:
40// CHECK-NEXT:   Binding:
41// CHECK-NEXT:   Type:
42// CHECK-NEXT:   Other:
43// CHECK-NEXT:   Section: [[SEC]]
44// CHECK-NEXT: }
45// CHECK-NEXT: Symbol {
46// CHECK-NEXT:   Name: g1
47// CHECK-NEXT:   Value:
48// CHECK-NEXT:   Size:
49// CHECK-NEXT:   Binding:
50// CHECK-NEXT:   Type:
51// CHECK-NEXT:   Other:
52// CHECK-NEXT:   Section:
53// CHECK-NEXT: }
54// CHECK-NEXT: Symbol {
55// CHECK-NEXT:   Name: g2
56// CHECK-NEXT:   Value:
57// CHECK-NEXT:   Size:
58// CHECK-NEXT:   Binding:
59// CHECK-NEXT:   Type:
60// CHECK-NEXT:   Other:
61// CHECK-NEXT:   Section:
62// CHECK-NEXT: }
63// CHECK-NEXT: Symbol {
64// CHECK-NEXT:   Name: g3
65// CHECK-NOT:  Symbol {
66
67// CHECK:      Addrsig [
68// CHECK-NEXT:   Sym: g1 (3)
69// CHECK-NEXT:   Sym: g3 (5)
70// CHECK-NEXT:   Sym: local (2)
71// CHECK-NEXT:   Sym:  (1)
72// CHECK-NEXT: ]
73
74.globl g1
75
76// ASM:      .addrsig
77// ASM-NEXT: .addrsig_sym g1
78.addrsig
79.addrsig_sym g1
80.globl g2
81// ASM:      .addrsig_sym g3
82// ASM-NEXT: .addrsig_sym local
83// ASM-NEXT: .addrsig_sym .Llocal
84// ASM-NEXT: .addrsig_sym .Lunseen
85// ASM-NEXT: .addrsig_sym unseen
86.addrsig_sym g3
87.addrsig_sym local
88.addrsig_sym .Llocal
89.addrsig_sym .Lunseen
90.addrsig_sym unseen
91
92local:
93.Llocal:
94
95.globl g3
96
97// DWO-NOT: .llvm_addrsig
98