diff --git a/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.h b/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.h --- a/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.h +++ b/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.h @@ -320,8 +320,7 @@ protected: typedef llvm::DenseMap DIERefToTypePtr; - typedef llvm::DenseMap - DIEToVariableSP; + typedef llvm::DenseMap DIERefToVariableSP; typedef llvm::DenseMap DIEToClangType; @@ -460,7 +459,9 @@ virtual DIERefToTypePtr &GetDIERefToType() { return m_dieref_to_type; } - virtual DIEToVariableSP &GetDIEToVariable() { return m_die_to_variable_sp; } + virtual DIERefToVariableSP &GetDIERefToVariable() { + return m_dieref_to_variable_sp; + } virtual DIEToClangType &GetForwardDeclDieToClangType() { return m_forward_decl_die_to_clang_type; @@ -512,7 +513,7 @@ std::unique_ptr m_ranges; UniqueDWARFASTTypeMap m_unique_ast_type_map; DIERefToTypePtr m_dieref_to_type; - DIEToVariableSP m_die_to_variable_sp; + DIERefToVariableSP m_dieref_to_variable_sp; DIEToClangType m_forward_decl_die_to_clang_type; ClangTypeToDIE m_forward_decl_clang_type_to_die; llvm::DenseMap diff --git a/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp b/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp --- a/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp +++ b/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp @@ -3093,7 +3093,7 @@ if (!die) return nullptr; - if (VariableSP var_sp = GetDIEToVariable()[die.GetDIE()]) + if (VariableSP var_sp = GetDIERefToVariable()[*die.GetDIERef()]) return var_sp; // Already been parsed! const dw_tag_t tag = die.Tag(); @@ -3428,9 +3428,9 @@ // missing vital information to be able to be displayed in the debugger // (missing location due to optimization, etc)) so we don't re-parse this // DIE over and over later... - GetDIEToVariable()[die.GetDIE()] = var_sp; + GetDIERefToVariable()[*die.GetDIERef()] = var_sp; if (spec_die) - GetDIEToVariable()[spec_die.GetDIE()] = var_sp; + GetDIERefToVariable()[*spec_die.GetDIERef()] = var_sp; return var_sp; } @@ -3495,7 +3495,7 @@ dw_tag_t tag = die.Tag(); // Check to see if we have already parsed this variable or constant? - VariableSP var_sp = GetDIEToVariable()[die.GetDIE()]; + VariableSP var_sp = GetDIERefToVariable()[*die.GetDIERef()]; if (var_sp) { if (cc_variable_list) cc_variable_list->AddVariableIfUnique(var_sp); diff --git a/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDwo.h b/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDwo.h --- a/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDwo.h +++ b/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDwo.h @@ -45,7 +45,7 @@ protected: DIERefToTypePtr &GetDIERefToType() override; - DIEToVariableSP &GetDIEToVariable() override; + DIERefToVariableSP &GetDIERefToVariable() override; DIEToClangType &GetForwardDeclDieToClangType() override; diff --git a/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDwo.cpp b/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDwo.cpp --- a/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDwo.cpp +++ b/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDwo.cpp @@ -80,8 +80,8 @@ return GetBaseSymbolFile().GetDIERefToType(); } -SymbolFileDWARF::DIEToVariableSP &SymbolFileDWARFDwo::GetDIEToVariable() { - return GetBaseSymbolFile().GetDIEToVariable(); +SymbolFileDWARF::DIERefToVariableSP &SymbolFileDWARFDwo::GetDIERefToVariable() { + return GetBaseSymbolFile().GetDIERefToVariable(); } SymbolFileDWARF::DIEToClangType &