Index: source/Plugins/SymbolFile/NativePDB/PdbAstBuilder.h =================================================================== --- source/Plugins/SymbolFile/NativePDB/PdbAstBuilder.h +++ source/Plugins/SymbolFile/NativePDB/PdbAstBuilder.h @@ -55,7 +55,7 @@ lldb_private::CompilerDeclContext GetTranslationUnitDecl(); - clang::Decl *GetOrCreateDeclForUid(PdbSymUid uid); + lldb_private::CompilerDecl GetOrCreateDeclForUid(PdbSymUid uid); clang::DeclContext *GetOrCreateDeclContextForUid(PdbSymUid uid); clang::DeclContext *GetParentDeclContext(PdbSymUid uid); Index: source/Plugins/SymbolFile/NativePDB/PdbAstBuilder.cpp =================================================================== --- source/Plugins/SymbolFile/NativePDB/PdbAstBuilder.cpp +++ source/Plugins/SymbolFile/NativePDB/PdbAstBuilder.cpp @@ -467,9 +467,11 @@ } } -clang::Decl *PdbAstBuilder::GetOrCreateDeclForUid(PdbSymUid uid) { - if (clang::Decl *result = TryGetDecl(uid)) - return result; +lldb_private::CompilerDecl PdbAstBuilder::GetOrCreateDeclForUid(PdbSymUid uid) { + if (clang::Decl *result = TryGetDecl(uid)) { + auto decl = CompilerDecl(&m_clang, result); + return decl; + } clang::Decl *result = nullptr; switch (uid.kind()) { @@ -482,13 +484,14 @@ result = tag; break; } - return nullptr; + return CompilerDecl(); } default: - return nullptr; + return CompilerDecl(); } m_uid_to_decl[toOpaqueUid(uid)] = result; - return result; + auto decl = CompilerDecl(&m_clang, result); + return decl; } clang::DeclContext *PdbAstBuilder::GetOrCreateDeclContextForUid(PdbSymUid uid) { @@ -501,11 +504,12 @@ } } - clang::Decl *decl = GetOrCreateDeclForUid(uid); + lldb_private::CompilerDecl decl = GetOrCreateDeclForUid(uid); if (!decl) return nullptr; - return clang::Decl::castToDeclContext(decl); + auto clang_decl = static_cast(decl.GetOpaqueDecl()); + return clang::Decl::castToDeclContext(clang_decl); } std::pair Index: source/Plugins/SymbolFile/NativePDB/SymbolFileNativePDB.cpp =================================================================== --- source/Plugins/SymbolFile/NativePDB/SymbolFileNativePDB.cpp +++ source/Plugins/SymbolFile/NativePDB/SymbolFileNativePDB.cpp @@ -1506,9 +1506,11 @@ } CompilerDecl SymbolFileNativePDB::GetDeclForUID(lldb::user_id_t uid) { - clang::Decl *decl = m_ast->GetOrCreateDeclForUid(PdbSymUid(uid)); + lldb_private::CompilerDecl decl = + m_ast->GetOrCreateDeclForUid(PdbSymUid(uid)); + auto clang_decl = static_cast(decl.GetOpaqueDecl()); - return m_ast->ToCompilerDecl(*decl); + return m_ast->ToCompilerDecl(*clang_decl); } CompilerDeclContext