mirror of
https://github.com/RPCSX/llvm.git
synced 2024-11-28 22:20:37 +00:00
Add comments from Eric's review of r204094.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@204358 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
31bd14fc2d
commit
b5a1fccdc5
@ -688,6 +688,11 @@ DwarfCompileUnit *DwarfDebug::constructDwarfCompileUnit(DICompileUnit DIUnit) {
|
|||||||
DwarfCompileUnit *NewCU = new DwarfCompileUnit(
|
DwarfCompileUnit *NewCU = new DwarfCompileUnit(
|
||||||
InfoHolder.getUnits().size(), Die, DIUnit, Asm, this, &InfoHolder);
|
InfoHolder.getUnits().size(), Die, DIUnit, Asm, this, &InfoHolder);
|
||||||
InfoHolder.addUnit(NewCU);
|
InfoHolder.addUnit(NewCU);
|
||||||
|
|
||||||
|
// LTO with assembly output shares a single line table amongst multiple CUs.
|
||||||
|
// To avoid the compilation directory being ambiguous, let the line table
|
||||||
|
// explicitly describe the directory of all files, never relying on the
|
||||||
|
// compilation directory.
|
||||||
if (!Asm->OutStreamer.hasRawTextSupport() || SingleCU)
|
if (!Asm->OutStreamer.hasRawTextSupport() || SingleCU)
|
||||||
Asm->OutStreamer.getContext().setMCLineTableCompilationDir(
|
Asm->OutStreamer.getContext().setMCLineTableCompilationDir(
|
||||||
NewCU->getUniqueID(), CompilationDir);
|
NewCU->getUniqueID(), CompilationDir);
|
||||||
|
@ -3,6 +3,10 @@
|
|||||||
; RUN: %llc_dwarf < %s -filetype=obj | llvm-dwarfdump -debug-dump=line - | FileCheck %s
|
; RUN: %llc_dwarf < %s -filetype=obj | llvm-dwarfdump -debug-dump=line - | FileCheck %s
|
||||||
; RUN: %llc_dwarf < %s -filetype=asm | FileCheck --check-prefix=ASM %s
|
; RUN: %llc_dwarf < %s -filetype=asm | FileCheck --check-prefix=ASM %s
|
||||||
|
|
||||||
|
; If multiple line tables are emitted, one per CU, those line tables can
|
||||||
|
; unambiguously rely on the comp_dir of their owning CU and use directory '0'
|
||||||
|
; to refer to it.
|
||||||
|
|
||||||
; CHECK: .debug_line contents:
|
; CHECK: .debug_line contents:
|
||||||
; CHECK-NEXT: Line table prologue:
|
; CHECK-NEXT: Line table prologue:
|
||||||
; CHECK-NOT: include_directories
|
; CHECK-NOT: include_directories
|
||||||
@ -14,6 +18,11 @@
|
|||||||
; CHECK: file_names[ 1] 0 {{.*}} b.cpp
|
; CHECK: file_names[ 1] 0 {{.*}} b.cpp
|
||||||
; CHECK-NOT: file_names
|
; CHECK-NOT: file_names
|
||||||
|
|
||||||
|
; However, if a single line table is emitted and shared between CUs, the
|
||||||
|
; comp_dir is ambiguous and relying on it would lead to different path
|
||||||
|
; interpretations depending on which CU lead to the table - so ensure that
|
||||||
|
; full paths are always emitted in this case, never comp_dir relative.
|
||||||
|
|
||||||
; ASM: .file 1 "/tmp/dbginfo/a{{[/\\]+}}a.cpp"
|
; ASM: .file 1 "/tmp/dbginfo/a{{[/\\]+}}a.cpp"
|
||||||
; ASM: .file 2 "/tmp/dbginfo/b{{[/\\]+}}b.cpp"
|
; ASM: .file 2 "/tmp/dbginfo/b{{[/\\]+}}b.cpp"
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user