mirror of
https://github.com/llvm/llvm-project.git
synced 2025-04-25 02:36:06 +00:00

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: ``:
|