llvm-project/lld/test/COFF/lto-parallel.ll
Reid Kleckner 91a6bfed61 [COFF] Assign unique identifiers to ObjFiles from LTO
Use the unique filenames that are used when /lldsavetemps is passed.
After this change, module names for LTO blobs in PDBs will be unique.
Visual Studio and probably other debuggers expect module names to be
unique.

Revert some changes from 1e0b158db (2017) that are no longer necessary
after removing MSVC LTO support.

Reviewed By: MaskRay

Differential Revision: https://reviews.llvm.org/D78221
2020-04-17 17:15:12 -07:00

36 lines
1.1 KiB
LLVM

; REQUIRES: x86
; RUN: llvm-as -o %t.obj %s
; 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
; RUN: FileCheck %s < %t.map
; RUN: llvm-pdbutil dump %t.pdb --modules | FileCheck %s --check-prefix=PDB
target datalayout = "e-m:w-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128"
target triple = "x86_64-pc-windows-msvc"
; CHECK: lto-parallel.ll.tmp.exe.lto.obj:
; CHECK: lto-parallel.ll.tmp.exe.lto.obj:
; CHECK-NEXT: foo
define void @foo() {
call void @bar()
ret void
}
; CHECK: lto-parallel.ll.tmp.exe.lto.1.obj:
; CHECK: lto-parallel.ll.tmp.exe.lto.1.obj:
; CHECK: bar
define void @bar() {
call void @foo()
ret void
}
; Objects in the PDB should receive distinct names.
; PDB: Modules
; PDB: Mod 0000 | `{{.*}}lto-parallel.ll.tmp.exe.lto.obj`:
; PDB: Obj: `{{.*}}lto-parallel.ll.tmp.exe.lto.obj`:
; PDB: Mod 0001 | `{{.*}}lto-parallel.ll.tmp.exe.lto.1.obj`:
; PDB: Obj: `{{.*}}lto-parallel.ll.tmp.exe.lto.1.obj`:
; PDB: Mod 0002 | `* Linker *`:
; PDB: Obj: ``: