1// REQUIRES: x86
2// RUN: llvm-mc -filetype=obj -triple=x86_64-pc-linux %s -o %t.o
3// RUN: llvm-mc -filetype=obj -triple=x86_64-pc-linux %p/Inputs/protected-shared.s -o %t2.o
4// RUN: ld.lld -shared %t2.o -o %t2.so
5// RUN: ld.lld %t.o %t2.so -o %t
6// RUN: llvm-readobj -t --dyn-symbols %t | FileCheck %s
7
8        .global  _start
9_start:
10
11        .global bar
12bar:
13
14        .data
15        .quad foo
16
17// CHECK:      Name: bar
18// CHECK-NEXT: Value:
19// CHECK-NEXT: Size: 0
20// CHECK-NEXT: Binding: Global
21// CHECK-NEXT: Type: None
22// CHECK-NEXT: Other: 0
23// CHECK-NEXT: Section: .text
24
25// CHECK:      Name: foo
26// CHECK-NEXT: Value: 0x0
27// CHECK-NEXT: Size: 0
28// CHECK-NEXT: Binding: Global
29// CHECK-NEXT: Type: None
30// CHECK-NEXT: Other: 0
31// CHECK-NEXT: Section: Undefined
32
33// CHECK:      DynamicSymbols [
34// CHECK-NEXT:   Symbol {
35// CHECK-NEXT:     Name: @
36// CHECK-NEXT:     Value: 0x0
37// CHECK-NEXT:     Size: 0
38// CHECK-NEXT:     Binding: Local (0x0)
39// CHECK-NEXT:     Type: None (0x0)
40// CHECK-NEXT:     Other: 0
41// CHECK-NEXT:     Section: Undefined (0x0)
42// CHECK-NEXT:   }
43// CHECK-NEXT:   Symbol {
44// CHECK-NEXT:     Name: foo@
45// CHECK-NEXT:     Value: 0x0
46// CHECK-NEXT:     Size: 0
47// CHECK-NEXT:     Binding: Global
48// CHECK-NEXT:     Type: None
49// CHECK-NEXT:     Other: 0
50// CHECK-NEXT:     Section: Undefined
51// CHECK-NEXT:   }
52// CHECK-NEXT: ]
53