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