xref: /llvm-project/lld/test/ELF/lto/relocatable.ll (revision 7b1d793713cf9ed9ab719f33b332f9c66a1fc5cc)
1; REQUIRES: x86
2; RUN: llvm-as %s -o %t1.o
3; RUN: ld.lld %t1.o -r -o %t
4; RUN: llvm-readobj --symbols %t | FileCheck %s
5
6; CHECK:       Symbols [
7; CHECK-NEXT:   Symbol {
8; CHECK-NEXT:     Name:
9; CHECK-NEXT:     Value: 0x0
10; CHECK-NEXT:     Size: 0
11; CHECK-NEXT:     Binding: Local
12; CHECK-NEXT:     Type: None
13; CHECK-NEXT:     Other: 0
14; CHECK-NEXT:     Section: Undefined
15; CHECK-NEXT:   }
16; CHECK-NEXT:   Symbol {
17; CHECK-NEXT:     Name: {{.*}}.o
18; CHECK-NEXT:     Value: 0x0
19; CHECK-NEXT:     Size: 0
20; CHECK-NEXT:     Binding: Local
21; CHECK-NEXT:     Type: File
22; CHECK-NEXT:     Other: 0
23; CHECK-NEXT:     Section: Absolute
24; CHECK-NEXT:   }
25; CHECK-NEXT:   Symbol {
26; CHECK-NEXT:     Name:
27; CHECK-NEXT:     Value: 0x0
28; CHECK-NEXT:     Size: 0
29; CHECK-NEXT:     Binding: Local
30; CHECK-NEXT:     Type: Section
31; CHECK-NEXT:     Other: 0
32; CHECK-NEXT:     Section: .text
33; CHECK-NEXT:   }
34; CHECK-NEXT:   Symbol {
35; CHECK-NEXT:     Name:
36; CHECK-NEXT:     Value: 0x0
37; CHECK-NEXT:     Size: 0
38; CHECK-NEXT:     Binding: Local
39; CHECK-NEXT:     Type: Section
40; CHECK-NEXT:     Other: 0
41; CHECK-NEXT:     Section: .text.foo
42; CHECK-NEXT:   }
43; CHECK-NEXT:   Symbol {
44; CHECK-NEXT:     Name:
45; CHECK-NEXT:     Value: 0x0
46; CHECK-NEXT:     Size: 0
47; CHECK-NEXT:     Binding: Local
48; CHECK-NEXT:     Type: Section
49; CHECK-NEXT:     Other: 0
50; CHECK-NEXT:     Section: .llvm_addrsig
51; CHECK-NEXT:   }
52; CHECK-NEXT:   Symbol {
53; CHECK-NEXT:     Name: foo
54; CHECK-NEXT:     Value: 0x0
55; CHECK-NEXT:     Size: 1
56; CHECK-NEXT:     Binding: Global
57; CHECK-NEXT:     Type: Function
58; CHECK-NEXT:     Other: 0
59; CHECK-NEXT:     Section: .text.foo
60; CHECK-NEXT:   }
61; CHECK-NEXT: ]
62
63target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128"
64target triple = "x86_64-unknown-linux-gnu"
65
66define void @foo() {
67  call void @bar()
68  ret void
69}
70
71define internal void @bar() {
72  ret void
73}
74
75declare i32 @baz(...)
76