Author: Augusto Noronha Date: 2023-10-23T17:22:16-07:00 New Revision: e6b3a2753b173aa87bd9ac373a150106856e80e4
URL: https://github.com/llvm/llvm-project/commit/e6b3a2753b173aa87bd9ac373a150106856e80e4 DIFF: https://github.com/llvm/llvm-project/commit/e6b3a2753b173aa87bd9ac373a150106856e80e4.diff LOG: [lldb][NFC] Move DWARFASTParserClang::GetTypeForDIE to DWARFASTParser (#69764) Added: Modified: lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParser.cpp lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParser.h lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParserClang.cpp lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParserClang.h Removed: ################################################################################ diff --git a/lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParser.cpp b/lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParser.cpp index 1fe0cadecc9e70e..409e9bb37ab28b9 100644 --- a/lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParser.cpp +++ b/lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParser.cpp @@ -9,6 +9,7 @@ #include "DWARFASTParser.h" #include "DWARFAttribute.h" #include "DWARFDIE.h" +#include "SymbolFileDWARF.h" #include "lldb/Core/ValueObject.h" #include "lldb/Symbol/SymbolFile.h" @@ -100,6 +101,30 @@ DWARFASTParser::ParseChildArrayInfo(const DWARFDIE &parent_die, return array_info; } +Type *DWARFASTParser::GetTypeForDIE(const DWARFDIE &die) { + if (!die) + return nullptr; + + SymbolFileDWARF *dwarf = die.GetDWARF(); + if (!dwarf) + return nullptr; + + DWARFAttributes attributes = die.GetAttributes(); + if (attributes.Size() == 0) + return nullptr; + + DWARFFormValue type_die_form; + for (size_t i = 0; i < attributes.Size(); ++i) { + dw_attr_t attr = attributes.AttributeAtIndex(i); + DWARFFormValue form_value; + + if (attr == DW_AT_type && attributes.ExtractFormValueAtIndex(i, form_value)) + return dwarf->ResolveTypeUID(form_value.Reference(), true); + } + + return nullptr; +} + AccessType DWARFASTParser::GetAccessTypeFromDWARF(uint32_t dwarf_accessibility) { switch (dwarf_accessibility) { diff --git a/lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParser.h b/lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParser.h index 1efe0ff347d9c8f..6749cb0e5db17a6 100644 --- a/lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParser.h +++ b/lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParser.h @@ -64,6 +64,9 @@ class DWARFASTParser { ParseChildArrayInfo(const DWARFDIE &parent_die, const ExecutionContext *exe_ctx = nullptr); + lldb_private::Type * + GetTypeForDIE(const lldb_private::plugin::dwarf::DWARFDIE &die); + static lldb::AccessType GetAccessTypeFromDWARF(uint32_t dwarf_accessibility); Kind GetKind() const { return m_kind; } diff --git a/lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParserClang.cpp b/lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParserClang.cpp index 5d107ce63b8bc25..22528e09c34995e 100644 --- a/lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParserClang.cpp +++ b/lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParserClang.cpp @@ -3293,30 +3293,6 @@ size_t DWARFASTParserClang::ParseChildParameters( return arg_idx; } -Type *DWARFASTParserClang::GetTypeForDIE(const DWARFDIE &die) { - if (!die) - return nullptr; - - SymbolFileDWARF *dwarf = die.GetDWARF(); - if (!dwarf) - return nullptr; - - DWARFAttributes attributes = die.GetAttributes(); - if (attributes.Size() == 0) - return nullptr; - - DWARFFormValue type_die_form; - for (size_t i = 0; i < attributes.Size(); ++i) { - dw_attr_t attr = attributes.AttributeAtIndex(i); - DWARFFormValue form_value; - - if (attr == DW_AT_type && attributes.ExtractFormValueAtIndex(i, form_value)) - return dwarf->ResolveTypeUID(form_value.Reference(), true); - } - - return nullptr; -} - clang::Decl *DWARFASTParserClang::GetClangDeclForDIE(const DWARFDIE &die) { if (!die) return nullptr; diff --git a/lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParserClang.h b/lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParserClang.h index d58fcf4a64dab3b..c381c58fba74263 100644 --- a/lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParserClang.h +++ b/lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParserClang.h @@ -199,9 +199,6 @@ class DWARFASTParserClang : public lldb_private::plugin::dwarf::DWARFASTParser { const lldb_private::plugin::dwarf::DWARFDIE &die, ParsedDWARFTypeAttributes &attrs); - lldb_private::Type * - GetTypeForDIE(const lldb_private::plugin::dwarf::DWARFDIE &die); - clang::Decl * GetClangDeclForDIE(const lldb_private::plugin::dwarf::DWARFDIE &die); _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits