Author: River Riddle Date: 2023-03-30T13:25:30-07:00 New Revision: a3252d1a2c568792974a4bc7413b0c61a43053e9
URL: https://github.com/llvm/llvm-project/commit/a3252d1a2c568792974a4bc7413b0c61a43053e9 DIFF: https://github.com/llvm/llvm-project/commit/a3252d1a2c568792974a4bc7413b0c61a43053e9.diff LOG: [lldb][NFC] Move various constructor definitions from .h to .cpp I ran into issues with linking downstream language plugin to liblldb in debug builds, hitting link time errors of form: ``` undefined reference to `vtable for lldb_private::<Insert LLDB class here>' ``` Anchoring the vtable to the .cpp files resolved those issues. Differential Revision: https://reviews.llvm.org/D147252 Added: Modified: lldb/include/lldb/Expression/ExpressionVariable.h lldb/include/lldb/Expression/Materializer.h lldb/include/lldb/Symbol/TypeSystem.h lldb/source/Expression/ExpressionVariable.cpp lldb/source/Expression/Materializer.cpp lldb/source/Symbol/TypeSystem.cpp Removed: ################################################################################ diff --git a/lldb/include/lldb/Expression/ExpressionVariable.h b/lldb/include/lldb/Expression/ExpressionVariable.h index 27343530780a1..ec18acb94417c 100644 --- a/lldb/include/lldb/Expression/ExpressionVariable.h +++ b/lldb/include/lldb/Expression/ExpressionVariable.h @@ -29,8 +29,7 @@ class ExpressionVariable LLVMCastKind getKind() const { return m_kind; } - ExpressionVariable(LLVMCastKind kind) : m_flags(0), m_kind(kind) {} - + ExpressionVariable(LLVMCastKind kind); virtual ~ExpressionVariable(); std::optional<uint64_t> GetByteSize() { return m_frozen_sp->GetByteSize(); } @@ -208,8 +207,7 @@ class PersistentExpressionState : public ExpressionVariableList { LLVMCastKind getKind() const { return m_kind; } - PersistentExpressionState(LLVMCastKind kind) : m_kind(kind) {} - + PersistentExpressionState(LLVMCastKind kind); virtual ~PersistentExpressionState(); virtual lldb::ExpressionVariableSP diff --git a/lldb/include/lldb/Expression/Materializer.h b/lldb/include/lldb/Expression/Materializer.h index aae94f86a71e6..8f850c3f46439 100644 --- a/lldb/include/lldb/Expression/Materializer.h +++ b/lldb/include/lldb/Expression/Materializer.h @@ -69,6 +69,7 @@ class Materializer { class PersistentVariableDelegate { public: + PersistentVariableDelegate(); virtual ~PersistentVariableDelegate(); virtual ConstString GetName() = 0; virtual void DidDematerialize(lldb::ExpressionVariableSP &variable) = 0; diff --git a/lldb/include/lldb/Symbol/TypeSystem.h b/lldb/include/lldb/Symbol/TypeSystem.h index a16f4af2be6d6..dfef87232628b 100644 --- a/lldb/include/lldb/Symbol/TypeSystem.h +++ b/lldb/include/lldb/Symbol/TypeSystem.h @@ -77,6 +77,7 @@ class TypeSystem : public PluginInterface, public std::enable_shared_from_this<TypeSystem> { public: // Constructors and Destructors + TypeSystem(); ~TypeSystem() override; // LLVM RTTI support diff --git a/lldb/source/Expression/ExpressionVariable.cpp b/lldb/source/Expression/ExpressionVariable.cpp index a397a34601d0c..325dd5bc8a2ad 100644 --- a/lldb/source/Expression/ExpressionVariable.cpp +++ b/lldb/source/Expression/ExpressionVariable.cpp @@ -15,6 +15,8 @@ using namespace lldb_private; +ExpressionVariable::ExpressionVariable(LLVMCastKind kind) + : m_flags(0), m_kind(kind) {} ExpressionVariable::~ExpressionVariable() = default; uint8_t *ExpressionVariable::GetValueBytes() { @@ -30,6 +32,8 @@ uint8_t *ExpressionVariable::GetValueBytes() { return nullptr; } +PersistentExpressionState::PersistentExpressionState(LLVMCastKind kind) + : m_kind(kind) {} PersistentExpressionState::~PersistentExpressionState() = default; lldb::addr_t PersistentExpressionState::LookupSymbol(ConstString name) { diff --git a/lldb/source/Expression/Materializer.cpp b/lldb/source/Expression/Materializer.cpp index 0932dc6f95b1f..6e344dfd57c4b 100644 --- a/lldb/source/Expression/Materializer.cpp +++ b/lldb/source/Expression/Materializer.cpp @@ -1598,5 +1598,7 @@ void Materializer::Dematerializer::Wipe() { m_process_address = LLDB_INVALID_ADDRESS; } +Materializer::PersistentVariableDelegate::PersistentVariableDelegate() = + default; Materializer::PersistentVariableDelegate::~PersistentVariableDelegate() = default; diff --git a/lldb/source/Symbol/TypeSystem.cpp b/lldb/source/Symbol/TypeSystem.cpp index 4eae2c98b12ec..9647102e96c61 100644 --- a/lldb/source/Symbol/TypeSystem.cpp +++ b/lldb/source/Symbol/TypeSystem.cpp @@ -36,6 +36,7 @@ size_t LanguageSet::Size() const { return bitvector.count(); } bool LanguageSet::Empty() const { return bitvector.none(); } bool LanguageSet::operator[](unsigned i) const { return bitvector[i]; } +TypeSystem::TypeSystem() = default; TypeSystem::~TypeSystem() = default; static TypeSystemSP CreateInstanceHelper(lldb::LanguageType language, _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits