diff options
Diffstat (limited to 'lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp')
-rw-r--r-- | lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp | 29 |
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; |