[LLD][COFF] Clean paths in PDB even when /pdbsourcepath is omitted

Differential Revision: https://reviews.llvm.org/D109030
This commit is contained in:
Alexandre Ganea 2021-08-31 19:03:44 -04:00
parent 29a74a3915
commit 7f0664f193
2 changed files with 8 additions and 0 deletions

View File

@ -266,6 +266,7 @@ static void pdbMakeAbsolute(SmallVectorImpl<char> &fileName) {
if (config->pdbSourcePath.empty()) {
sys::path::native(fileName);
sys::fs::make_absolute(fileName);
sys::path::remove_dots(fileName, true);
return;
}

View File

@ -37,6 +37,10 @@ RUN: llvm-pdbutil pdb2yaml -modules -module-files -module-syms -subsections=line
RUN: ./lld-link -debug "-pdbsourcepath:/usr/src" -entry:main -nodefaultlib -out:out.exe -pdb:out.pdb pdb_lines_1_relative.obj pdb_lines_2_relative.obj
RUN: llvm-pdbutil pdb2yaml -modules -module-files -module-syms -subsections=lines,fc %t/out.pdb | FileCheck --check-prefix=POSIX %s
Also check without -pdbsourcepath
RUN: ./lld-link -debug -entry:main -nodefaultlib -out:out.exe -pdb:out.pdb pdb_lines_1_relative.obj pdb_lines_2_relative.obj
RUN: llvm-pdbutil pdb2yaml -modules -module-files -module-syms -subsections=lines,fc %t/out.pdb | FileCheck --check-prefix=ABSOLUTE %s
CHECK-LABEL: - Module: 'c:\src\pdb_lines_1_relative.obj'
CHECK-NEXT: ObjFile: 'c:\src\pdb_lines_1_relative.obj'
CHECK: SourceFiles:
@ -103,3 +107,6 @@ POSIX-NEXT: - pdb
POSIX-NEXT: - '/usr/src/out.pdb'
POSIX-NEXT: - cmd
POSIX-NEXT: - '-debug -pdbsourcepath:/usr/src -entry:main -nodefaultlib -out:out.exe -pdb:out.pdb pdb_lines_1_relative.obj pdb_lines_2_relative.obj'
ABSOLUTE-LABEL: StringTable:
ABSOLUTE-NOT: {{/|\\}}.{{/|\\}}pdb_lines_1.c