summaryrefslogtreecommitdiffstats
path: root/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp')
-rw-r--r--lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp29
1 files changed, 12 insertions, 17 deletions
diff --git a/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp b/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp
index 0262827f1b3..3b765c6073d 100644
--- a/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp
+++ b/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp
@@ -178,11 +178,10 @@ ParseLLVMLineTable(lldb_private::DWARFContext &context,
return *line_table;
}
-static FileSpecList
-ParseSupportFilesFromPrologue(const lldb::ModuleSP &module,
- const llvm::DWARFDebugLine::Prologue &prologue,
- llvm::StringRef compile_dir = {},
- FileSpec first_file = {}) {
+static FileSpecList ParseSupportFilesFromPrologue(
+ const lldb::ModuleSP &module,
+ const llvm::DWARFDebugLine::Prologue &prologue, FileSpec::Style style,
+ llvm::StringRef compile_dir = {}, FileSpec first_file = {}) {
FileSpecList support_files;
support_files.Append(first_file);
@@ -191,8 +190,8 @@ ParseSupportFilesFromPrologue(const lldb::ModuleSP &module,
std::string original_file;
if (!prologue.getFileNameByIndex(
idx, compile_dir,
- llvm::DILineInfoSpecifier::FileLineInfoKind::Default,
- original_file)) {
+ llvm::DILineInfoSpecifier::FileLineInfoKind::Default, original_file,
+ style)) {
// Always add an entry so the indexes remain correct.
support_files.EmplaceBack();
continue;
@@ -202,18 +201,14 @@ ParseSupportFilesFromPrologue(const lldb::ModuleSP &module,
if (!prologue.getFileNameByIndex(
idx, compile_dir,
llvm::DILineInfoSpecifier::FileLineInfoKind::AbsoluteFilePath,
- remapped_file)) {
+ remapped_file, style)) {
// Always add an entry so the indexes remain correct.
- support_files.EmplaceBack(original_file,
- FileSpec::GuessPathStyle(original_file)
- .getValueOr(FileSpec::Style::native));
+ support_files.EmplaceBack(original_file, style);
continue;
}
module->RemapSourceFile(llvm::StringRef(original_file), remapped_file);
- support_files.EmplaceBack(remapped_file,
- FileSpec::GuessPathStyle(remapped_file)
- .getValueOr(FileSpec::Style::native));
+ support_files.EmplaceBack(remapped_file, style);
}
return support_files;
@@ -893,8 +888,8 @@ SymbolFileDWARF::GetTypeUnitSupportFiles(DWARFTypeUnit &tu) {
"SymbolFileDWARF::GetTypeUnitSupportFiles failed to parse "
"the line table prologue");
} else {
- list =
- ParseSupportFilesFromPrologue(GetObjectFile()->GetModule(), prologue);
+ list = ParseSupportFilesFromPrologue(GetObjectFile()->GetModule(),
+ prologue, tu.GetPathStyle());
}
}
return list;
@@ -1013,7 +1008,7 @@ bool SymbolFileDWARF::ParseLineTable(CompileUnit &comp_unit) {
}
comp_unit.SetSupportFiles(ParseSupportFilesFromPrologue(
- comp_unit.GetModule(), line_table->Prologue,
+ comp_unit.GetModule(), line_table->Prologue, dwarf_cu->GetPathStyle(),
dwarf_cu->GetCompilationDirectory().GetCString(), FileSpec(comp_unit)));
return true;
OpenPOWER on IntegriCloud