[Lldb-commits] [lldb] 61c4ee9 - [lldb][NFC] Implement llvm-style RTTI for DWARFASTParser (#69762)
via lldb-commits
lldb-commits at lists.llvm.org
Mon Oct 23 16:25:22 PDT 2023
Author: Augusto Noronha
Date: 2023-10-23T16:25:18-07:00
New Revision: 61c4ee94498f99f45b630bc491ad11db236a3b82
URL: https://github.com/llvm/llvm-project/commit/61c4ee94498f99f45b630bc491ad11db236a3b82
DIFF: https://github.com/llvm/llvm-project/commit/61c4ee94498f99f45b630bc491ad11db236a3b82.diff
LOG: [lldb][NFC] Implement llvm-style RTTI for DWARFASTParser (#69762)
Added:
Modified:
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.h b/lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParser.h
index eaafbe169cc8cfc..99527fb83f1fa0a 100644
--- a/lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParser.h
+++ b/lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParser.h
@@ -29,6 +29,9 @@ class SymbolFileDWARF;
class DWARFASTParser {
public:
+ enum class Kind { DWARFASTParserClang, DWARFASTParserSwift };
+ DWARFASTParser(Kind kind) : m_kind(kind) {}
+
virtual ~DWARFASTParser() = default;
virtual lldb::TypeSP ParseTypeFromDWARF(const SymbolContext &sc,
@@ -62,6 +65,11 @@ class DWARFASTParser {
const ExecutionContext *exe_ctx = nullptr);
static lldb::AccessType GetAccessTypeFromDWARF(uint32_t dwarf_accessibility);
+
+ Kind GetKind() const { return m_kind; }
+
+private:
+ const Kind m_kind;
};
} // namespace dwarf
} // namespace lldb_private::plugin
diff --git a/lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParserClang.cpp b/lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParserClang.cpp
index 545a5dcc7d0fd09..5d107ce63b8bc25 100644
--- a/lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParserClang.cpp
+++ b/lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParserClang.cpp
@@ -63,7 +63,8 @@ using namespace lldb_private::dwarf;
using namespace lldb_private::plugin::dwarf;
DWARFASTParserClang::DWARFASTParserClang(TypeSystemClang &ast)
- : m_ast(ast), m_die_to_decl_ctx(), m_decl_ctx_to_die() {}
+ : DWARFASTParser(Kind::DWARFASTParserClang), m_ast(ast),
+ m_die_to_decl_ctx(), m_decl_ctx_to_die() {}
DWARFASTParserClang::~DWARFASTParserClang() = default;
diff --git a/lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParserClang.h b/lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParserClang.h
index 3d6912cf56c1779..d58fcf4a64dab3b 100644
--- a/lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParserClang.h
+++ b/lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParserClang.h
@@ -248,6 +248,10 @@ class DWARFASTParserClang : public lldb_private::plugin::dwarf::DWARFASTParser {
lldb::ModuleSP
GetModuleForType(const lldb_private::plugin::dwarf::DWARFDIE &die);
+ static bool classof(const DWARFASTParser *Parser) {
+ return Parser->GetKind() == Kind::DWARFASTParserClang;
+ }
+
private:
struct FieldInfo {
uint64_t bit_size = 0;
More information about the lldb-commits
mailing list