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
36 lines
1.1 KiB
LLVM
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: ``:
|