1; REQUIRES: x86
2; RUN: llvm-as -o %t.obj %s
3; RUN: lld-link -opt:noicf /out:%t.exe /entry:foo /include:bar /opt:lldltopartitions=2 /subsystem:console /lldmap:%t.map %t.obj /debug /pdb:%t.pdb
4; RUN: FileCheck %s < %t.map
5; RUN: llvm-pdbutil dump %t.pdb --modules | FileCheck %s --check-prefix=PDB
6
7target datalayout = "e-m:w-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128"
8target triple = "x86_64-pc-windows-msvc"
9
10; CHECK: lto-parallel.ll.tmp.exe.lto.obj:
11; CHECK: lto-parallel.ll.tmp.exe.lto.obj:
12; CHECK-NEXT: foo
13define void @foo() {
14  call void @bar()
15  ret void
16}
17
18; CHECK: lto-parallel.ll.tmp.exe.lto.1.obj:
19; CHECK: lto-parallel.ll.tmp.exe.lto.1.obj:
20; CHECK: bar
21define void @bar() {
22  call void @foo()
23  ret void
24}
25
26
27; Objects in the PDB should receive distinct names.
28
29; PDB: Modules
30; PDB: Mod 0000 | `{{.*}}lto-parallel.ll.tmp.exe.lto.obj`:
31; PDB: Obj: `{{.*}}lto-parallel.ll.tmp.exe.lto.obj`:
32; PDB: Mod 0001 | `{{.*}}lto-parallel.ll.tmp.exe.lto.1.obj`:
33; PDB: Obj: `{{.*}}lto-parallel.ll.tmp.exe.lto.1.obj`:
34; PDB: Mod 0002 | `* Linker *`:
35; PDB: Obj: ``:
36