• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1// REQUIRES: x86
2// Check that local symbols are not inserted into dynamic table.
3// RUN: llvm-mc -filetype=obj -triple=x86_64-pc-linux %s -o %t
4// RUN: ld.lld %t -shared -o %t1.so
5// RUN: llvm-readobj --symbols --dyn-syms %t1.so | FileCheck %s
6
7// CHECK: Symbols [
8// CHECK-NEXT:   Symbol {
9// CHECK-NEXT:     Name:
10// CHECK-NEXT:     Value: 0x0
11// CHECK-NEXT:     Size: 0
12// CHECK-NEXT:     Binding: Local
13// CHECK-NEXT:     Type: None
14// CHECK-NEXT:     Other: 0
15// CHECK-NEXT:     Section: Undefined
16// CHECK-NEXT:   }
17// CHECK-NEXT:   Symbol {
18// CHECK-NEXT:     Name: blah
19// CHECK-NEXT:     Value:
20// CHECK-NEXT:     Size: 0
21// CHECK-NEXT:     Binding: Local
22// CHECK-NEXT:     Type: None
23// CHECK-NEXT:     Other: 0
24// CHECK-NEXT:     Section: .text
25// CHECK-NEXT:   }
26// CHECK-NEXT:   Symbol {
27// CHECK-NEXT:     Name: foo
28// CHECK-NEXT:     Value:
29// CHECK-NEXT:     Size: 0
30// CHECK-NEXT:     Binding: Local
31// CHECK-NEXT:     Type: None
32// CHECK-NEXT:     Other: 0
33// CHECK-NEXT:     Section: .text
34// CHECK-NEXT:   }
35// CHECK-NEXT:   Symbol {
36// CHECK-NEXT:     Name: goo
37// CHECK-NEXT:     Value:
38// CHECK-NEXT:     Size: 0
39// CHECK-NEXT:     Binding: Local
40// CHECK-NEXT:     Type: None
41// CHECK-NEXT:     Other: 0
42// CHECK-NEXT:     Section: .text
43// CHECK-NEXT:   }
44// CHECK-NEXT:   Symbol {
45// CHECK-NEXT:     Name: _DYNAMIC
46// CHECK-NEXT:     Value:
47// CHECK-NEXT:     Size: 0
48// CHECK-NEXT:     Binding: Local
49// CHECK-NEXT:     Type: None
50// CHECK-NEXT:     Other [ (0x2)
51// CHECK-NEXT:       STV_HIDDEN
52// CHECK-NEXT:     ]
53// CHECK-NEXT:     Section: .dynamic
54// CHECK-NEXT:   }
55// CHECK-NEXT:   Symbol {
56// CHECK-NEXT:     Name: _start
57// CHECK-NEXT:     Value:
58// CHECK-NEXT:     Size: 0
59// CHECK-NEXT:     Binding: Global
60// CHECK-NEXT:     Type: None
61// CHECK-NEXT:     Other: 0
62// CHECK-NEXT:     Section: .text
63// CHECK-NEXT:   }
64// CHECK-NEXT: ]
65
66// CHECK: DynamicSymbols [
67// CHECK-NEXT:   Symbol {
68// CHECK-NEXT:     Name:
69// CHECK-NEXT:     Value: 0x0
70// CHECK-NEXT:     Size: 0
71// CHECK-NEXT:     Binding: Local
72// CHECK-NEXT:     Type: None
73// CHECK-NEXT:     Other: 0
74// CHECK-NEXT:     Section: Undefined
75// CHECK-NEXT:   }
76// CHECK-NEXT:   Symbol {
77// CHECK-NEXT:     Name: _start
78// CHECK-NEXT:     Value:
79// CHECK-NEXT:     Size: 0
80// CHECK-NEXT:     Binding: Global
81// CHECK-NEXT:     Type: None
82// CHECK-NEXT:     Other: 0
83// CHECK-NEXT:     Section: .text
84// CHECK-NEXT:   }
85// CHECK-NEXT: ]
86
87.global _start
88_start:
89
90blah:
91foo:
92goo:
93
94
95