diff --git a/lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParserClang.cpp b/lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParserClang.cpp --- a/lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParserClang.cpp +++ b/lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParserClang.cpp @@ -825,7 +825,8 @@ CompilerType enumerator_clang_type; CompilerType clang_type; clang_type.SetCompilerType( - &m_ast, dwarf->GetForwardDeclDieToClangType().lookup(die.GetDIE())); + &m_ast, + dwarf->GetForwardDeclDIERefToClangType().lookup(*die.GetDIERef())); if (!clang_type) { if (attrs.type.IsValid()) { Type *enumerator_type = @@ -1589,7 +1590,8 @@ (void)tag_decl_kind; bool clang_type_was_created = false; clang_type.SetCompilerType( - &m_ast, dwarf->GetForwardDeclDieToClangType().lookup(die.GetDIE())); + &m_ast, + dwarf->GetForwardDeclDIERefToClangType().lookup(*die.GetDIERef())); if (!clang_type) { clang::DeclContext *decl_ctx = GetClangDeclContextContainingDIE(die, nullptr); @@ -1726,7 +1728,7 @@ // Can't assume m_ast.GetSymbolFile() is actually a // SymbolFileDWARF, it can be a SymbolFileDWARFDebugMap for Apple // binaries. - dwarf->GetForwardDeclDieToClangType()[die.GetDIE()] = + dwarf->GetForwardDeclDIERefToClangType()[*die.GetDIERef()] = clang_type.GetOpaqueQualType(); dwarf->GetForwardDeclClangTypeToDie().try_emplace( ClangUtil::RemoveFastQualifiers(clang_type).GetOpaqueQualType(), 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 @@ -321,9 +321,8 @@ protected: typedef llvm::DenseMap DIERefToTypePtr; typedef llvm::DenseMap DIERefToVariableSP; - typedef llvm::DenseMap - DIEToClangType; + typedef llvm::DenseMap + DIERefToClangType; typedef llvm::DenseMap ClangTypeToDIE; SymbolFileDWARF(const SymbolFileDWARF &) = delete; @@ -463,8 +462,8 @@ return m_dieref_to_variable_sp; } - virtual DIEToClangType &GetForwardDeclDieToClangType() { - return m_forward_decl_die_to_clang_type; + virtual DIERefToClangType &GetForwardDeclDIERefToClangType() { + return m_forward_decl_dieref_to_clang_type; } virtual ClangTypeToDIE &GetForwardDeclClangTypeToDie() { @@ -514,7 +513,7 @@ UniqueDWARFASTTypeMap m_unique_ast_type_map; DIERefToTypePtr m_dieref_to_type; DIERefToVariableSP m_dieref_to_variable_sp; - DIEToClangType m_forward_decl_die_to_clang_type; + DIERefToClangType m_forward_decl_dieref_to_clang_type; ClangTypeToDIE m_forward_decl_clang_type_to_die; llvm::DenseMap m_type_unit_support_files; 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 @@ -47,7 +47,7 @@ DIERefToVariableSP &GetDIERefToVariable() override; - DIEToClangType &GetForwardDeclDieToClangType() override; + DIERefToClangType &GetForwardDeclDIERefToClangType() override; ClangTypeToDIE &GetForwardDeclClangTypeToDie() 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 @@ -84,9 +84,9 @@ return GetBaseSymbolFile().GetDIERefToVariable(); } -SymbolFileDWARF::DIEToClangType & -SymbolFileDWARFDwo::GetForwardDeclDieToClangType() { - return GetBaseSymbolFile().GetForwardDeclDieToClangType(); +SymbolFileDWARF::DIERefToClangType & +SymbolFileDWARFDwo::GetForwardDeclDIERefToClangType() { + return GetBaseSymbolFile().GetForwardDeclDIERefToClangType(); } SymbolFileDWARF::ClangTypeToDIE &