llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT--> @llvm/pr-subscribers-lldb Author: Leonard Grey (speednoisemovement) <details> <summary>Changes</summary> This changes `PdbAstBuilder` to a language-neutral abstract interface and moves all of its functionality to the `PdbAstBuilderClang` derived class. All Clang-specific methods with external callers are now public methods on `PdbAstBuilderClang` and `TypeSystemClang` and `UdtRecordCompleter` use this type directly. Did my best to clean up includes and unused methods. RFC for context: https://discourse.llvm.org/t/rfc-lldb-make-pdbastbuilder-language-agnostic/89117 --- Patch is 43.07 KiB, truncated to 20.00 KiB below, full version: https://github.com/llvm/llvm-project/pull/175840.diff 9 Files Affected: - (modified) lldb/source/Plugins/SymbolFile/NativePDB/CMakeLists.txt (+1-1) - (modified) lldb/source/Plugins/SymbolFile/NativePDB/PdbAstBuilder.h (+23-147) - (renamed) lldb/source/Plugins/SymbolFile/NativePDB/PdbAstBuilderClang.cpp (+83-76) - (added) lldb/source/Plugins/SymbolFile/NativePDB/PdbAstBuilderClang.h (+182) - (modified) lldb/source/Plugins/SymbolFile/NativePDB/UdtRecordCompleter.cpp (+2-2) - (modified) lldb/source/Plugins/SymbolFile/NativePDB/UdtRecordCompleter.h (+3-4) - (modified) lldb/source/Plugins/TypeSystem/Clang/TypeSystemClang.cpp (+3-2) - (modified) lldb/source/Plugins/TypeSystem/Clang/TypeSystemClang.h (+7-1) - (modified) llvm/utils/gn/secondary/lldb/source/Plugins/SymbolFile/NativePDB/BUILD.gn (+1-1) ``````````diff diff --git a/lldb/source/Plugins/SymbolFile/NativePDB/CMakeLists.txt b/lldb/source/Plugins/SymbolFile/NativePDB/CMakeLists.txt index 21756bb26c855..b13c112ce2927 100644 --- a/lldb/source/Plugins/SymbolFile/NativePDB/CMakeLists.txt +++ b/lldb/source/Plugins/SymbolFile/NativePDB/CMakeLists.txt @@ -2,7 +2,7 @@ add_lldb_library(lldbPluginSymbolFileNativePDB CodeViewRegisterMapping.cpp CompileUnitIndex.cpp DWARFLocationExpression.cpp - PdbAstBuilder.cpp + PdbAstBuilderClang.cpp PdbFPOProgramToDWARFExpression.cpp PdbIndex.cpp PdbSymUid.cpp diff --git a/lldb/source/Plugins/SymbolFile/NativePDB/PdbAstBuilder.h b/lldb/source/Plugins/SymbolFile/NativePDB/PdbAstBuilder.h index d94de860576b5..86b3a8dd0d6a2 100644 --- a/lldb/source/Plugins/SymbolFile/NativePDB/PdbAstBuilder.h +++ b/lldb/source/Plugins/SymbolFile/NativePDB/PdbAstBuilder.h @@ -9,170 +9,46 @@ #ifndef LLDB_SOURCE_PLUGINS_SYMBOLFILE_NATIVEPDB_PDBASTBUILDER_H #define LLDB_SOURCE_PLUGINS_SYMBOLFILE_NATIVEPDB_PDBASTBUILDER_H -#include "llvm/ADT/DenseMap.h" +#include "lldb/Symbol/CompilerDecl.h" +#include "lldb/Symbol/CompilerDeclContext.h" +#include "lldb/Symbol/CompilerType.h" +#include "lldb/lldb-types.h" #include "llvm/ADT/StringRef.h" -#include "llvm/Support/Threading.h" -#include "Plugins/ExpressionParser/Clang/ClangASTImporter.h" - -#include "PdbIndex.h" #include "PdbSymUid.h" #include <optional> -namespace clang { -class TagDecl; -class DeclContext; -class Decl; -class QualType; -class FunctionDecl; -class NamespaceDecl; -} // namespace clang - -namespace llvm { -namespace codeview { -class ProcSym; -} -} // namespace llvm - namespace lldb_private { -class ClangASTImporter; -class ObjectFile; +class Stream; namespace npdb { -class PdbIndex; -struct VariableInfo; - -struct DeclStatus { - DeclStatus() = default; - DeclStatus(lldb::user_id_t uid, bool resolved) - : uid(uid), resolved(resolved) {} - lldb::user_id_t uid = 0; - bool resolved = false; -}; class PdbAstBuilder { public: - // Constructors and Destructors - PdbAstBuilder(TypeSystemClang &clang); - - lldb_private::CompilerDeclContext GetTranslationUnitDecl(); - - std::optional<lldb_private::CompilerDecl> - GetOrCreateDeclForUid(PdbSymUid uid); - lldb_private::CompilerDeclContext GetOrCreateDeclContextForUid(PdbSymUid uid); - clang::DeclContext *GetOrCreateClangDeclContextForUid(PdbSymUid uid); - lldb_private::CompilerDeclContext GetParentDeclContext(PdbSymUid uid); - clang::DeclContext *GetParentClangDeclContext(PdbSymUid uid); - - void EnsureFunction(PdbCompilandSymId func_id); - void EnsureInlinedFunction(PdbCompilandSymId inlinesite_id); - void EnsureBlock(PdbCompilandSymId block_id); - void EnsureVariable(PdbCompilandSymId scope_id, PdbCompilandSymId var_id); - void EnsureVariable(PdbGlobalSymId var_id); - CompilerType GetOrCreateTypedefType(PdbGlobalSymId id); - void ParseDeclsForContext(lldb_private::CompilerDeclContext context); - - clang::QualType GetBasicType(lldb::BasicType type); - clang::QualType GetOrCreateClangType(PdbTypeSymId type); - CompilerType GetOrCreateType(PdbTypeSymId type); - - bool CompleteTagDecl(clang::TagDecl &tag); - bool CompleteType(CompilerType ct); - - CompilerDecl ToCompilerDecl(clang::Decl *decl); - CompilerType ToCompilerType(clang::QualType qt); - CompilerDeclContext ToCompilerDeclContext(clang::DeclContext *context); - clang::QualType FromCompilerType(CompilerType ct); - clang::Decl *FromCompilerDecl(CompilerDecl decl); - clang::DeclContext *FromCompilerDeclContext(CompilerDeclContext context); - - TypeSystemClang &clang() { return m_clang; } - ClangASTImporter &GetClangASTImporter() { return m_importer; } - - void Dump(Stream &stream, llvm::StringRef filter, bool show_color); - - lldb_private::CompilerDeclContext - FindNamespaceDecl(lldb_private::CompilerDeclContext parent_ctx, - llvm::StringRef name); - -private: - clang::Decl *TryGetDecl(PdbSymUid uid) const; - - clang::FunctionDecl *GetOrCreateFunctionDecl(PdbCompilandSymId func_id); - clang::FunctionDecl * - GetOrCreateInlinedFunctionDecl(PdbCompilandSymId inlinesite_id); - clang::BlockDecl *GetOrCreateBlockDecl(PdbCompilandSymId block_id); - clang::VarDecl *GetOrCreateVariableDecl(PdbCompilandSymId scope_id, - PdbCompilandSymId var_id); - clang::VarDecl *GetOrCreateVariableDecl(PdbGlobalSymId var_id); - - using TypeIndex = llvm::codeview::TypeIndex; - - clang::QualType - CreatePointerType(const llvm::codeview::PointerRecord &pointer); - clang::QualType - CreateModifierType(const llvm::codeview::ModifierRecord &modifier); - clang::QualType CreateArrayType(const llvm::codeview::ArrayRecord &array); - clang::QualType CreateRecordType(PdbTypeSymId id, - const llvm::codeview::TagRecord &record); - clang::QualType CreateEnumType(PdbTypeSymId id, - const llvm::codeview::EnumRecord &record); - clang::QualType - CreateFunctionType(TypeIndex args_type_idx, TypeIndex return_type_idx, - llvm::codeview::CallingConvention calling_convention); - clang::QualType CreateType(PdbTypeSymId type); - - void CreateFunctionParameters(PdbCompilandSymId func_id, - clang::FunctionDecl &function_decl, - uint32_t param_count); - clang::Decl *GetOrCreateSymbolForId(PdbCompilandSymId id); - clang::VarDecl *CreateVariableDecl(PdbSymUid uid, - llvm::codeview::CVSymbol sym, - clang::DeclContext &scope); - clang::NamespaceDecl *GetOrCreateNamespaceDecl(const char *name, - clang::DeclContext &context); - clang::FunctionDecl *CreateFunctionDeclFromId(PdbTypeSymId func_tid, - PdbCompilandSymId func_sid); - clang::FunctionDecl * - CreateFunctionDecl(PdbCompilandSymId func_id, llvm::StringRef func_name, - TypeIndex func_ti, CompilerType func_ct, - uint32_t param_count, clang::StorageClass func_storage, - bool is_inline, clang::DeclContext *parent); - void ParseNamespace(clang::DeclContext &parent); - void ParseAllTypes(); - void ParseAllFunctionsAndNonLocalVars(); - void ParseDeclsForSimpleContext(clang::DeclContext &context); - void ParseBlockChildren(PdbCompilandSymId block_id); - - std::pair<clang::DeclContext *, std::string> - CreateDeclInfoForType(const llvm::codeview::TagRecord &record, TypeIndex ti); - std::pair<clang::DeclContext *, std::string> - CreateDeclInfoForUndecoratedName(llvm::StringRef uname); - clang::QualType CreateSimpleType(TypeIndex ti); + virtual ~PdbAstBuilder() = default; - TypeSystemClang &m_clang; + virtual std::optional<CompilerDecl> GetOrCreateDeclForUid(PdbSymUid uid) = 0; + virtual CompilerDeclContext GetOrCreateDeclContextForUid(PdbSymUid uid) = 0; + virtual CompilerDeclContext GetParentDeclContext(PdbSymUid uid) = 0; - ClangASTImporter m_importer; - llvm::once_flag m_parse_functions_and_non_local_vars; - llvm::once_flag m_parse_all_types; - llvm::DenseMap<clang::Decl *, DeclStatus> m_decl_to_status; - llvm::DenseMap<lldb::user_id_t, clang::Decl *> m_uid_to_decl; - llvm::DenseMap<lldb::user_id_t, clang::QualType> m_uid_to_type; + virtual void EnsureFunction(PdbCompilandSymId func_id) = 0; + virtual void EnsureInlinedFunction(PdbCompilandSymId inlinesite_id) = 0; + virtual void EnsureBlock(PdbCompilandSymId block_id) = 0; + virtual void EnsureVariable(PdbCompilandSymId scope_id, + PdbCompilandSymId var_id) = 0; + virtual void EnsureVariable(PdbGlobalSymId var_id) = 0; - // From class/struct's opaque_compiler_type_t to a set containing the pairs of - // method's name and CompilerType. - llvm::DenseMap<lldb::opaque_compiler_type_t, - llvm::SmallSet<std::pair<llvm::StringRef, CompilerType>, 8>> - m_cxx_record_map; + virtual CompilerType GetOrCreateType(PdbTypeSymId type) = 0; + virtual CompilerType GetOrCreateTypedefType(PdbGlobalSymId id) = 0; + virtual bool CompleteType(CompilerType ct) = 0; - using NamespaceSet = llvm::DenseSet<clang::NamespaceDecl *>; + virtual void ParseDeclsForContext(CompilerDeclContext context) = 0; - // These namespaces are fully parsed - NamespaceSet m_parsed_namespaces; + virtual CompilerDeclContext FindNamespaceDecl(CompilerDeclContext parent_ctx, + llvm::StringRef name) = 0; - // We know about these namespaces, but they might not be completely parsed yet - NamespaceSet m_known_namespaces; - llvm::DenseMap<clang::DeclContext *, NamespaceSet> m_parent_to_namespaces; + virtual void Dump(Stream &stream, llvm::StringRef filter, + bool show_color) = 0; }; } // namespace npdb diff --git a/lldb/source/Plugins/SymbolFile/NativePDB/PdbAstBuilder.cpp b/lldb/source/Plugins/SymbolFile/NativePDB/PdbAstBuilderClang.cpp similarity index 90% rename from lldb/source/Plugins/SymbolFile/NativePDB/PdbAstBuilder.cpp rename to lldb/source/Plugins/SymbolFile/NativePDB/PdbAstBuilderClang.cpp index 61f09dff3c7e5..80baaf18d4d97 100644 --- a/lldb/source/Plugins/SymbolFile/NativePDB/PdbAstBuilder.cpp +++ b/lldb/source/Plugins/SymbolFile/NativePDB/PdbAstBuilderClang.cpp @@ -1,4 +1,4 @@ -#include "PdbAstBuilder.h" +#include "PdbAstBuilderClang.h" #include "llvm/DebugInfo/CodeView/CVTypeVisitor.h" #include "llvm/DebugInfo/CodeView/LazyRandomTypeCollection.h" @@ -161,14 +161,16 @@ static bool IsAnonymousNamespaceName(llvm::StringRef name) { return name == "`anonymous namespace'" || name == "`anonymous-namespace'"; } -PdbAstBuilder::PdbAstBuilder(TypeSystemClang &clang) : m_clang(clang) {} +PdbAstBuilderClang::PdbAstBuilderClang(TypeSystemClang &clang) + : m_clang(clang) {} -lldb_private::CompilerDeclContext PdbAstBuilder::GetTranslationUnitDecl() { +lldb_private::CompilerDeclContext PdbAstBuilderClang::GetTranslationUnitDecl() { return ToCompilerDeclContext(m_clang.GetTranslationUnitDecl()); } std::pair<clang::DeclContext *, std::string> -PdbAstBuilder::CreateDeclInfoForType(const TagRecord &record, TypeIndex ti) { +PdbAstBuilderClang::CreateDeclInfoForType(const TagRecord &record, + TypeIndex ti) { SymbolFileNativePDB *pdb = static_cast<SymbolFileNativePDB *>( m_clang.GetSymbolFile()->GetBackingSymbolFile()); // FIXME: Move this to GetDeclContextContainingUID. @@ -240,7 +242,7 @@ static bool isLocalVariableType(SymbolKind K) { return false; } -clang::Decl *PdbAstBuilder::GetOrCreateSymbolForId(PdbCompilandSymId id) { +clang::Decl *PdbAstBuilderClang::GetOrCreateSymbolForId(PdbCompilandSymId id) { SymbolFileNativePDB *pdb = static_cast<SymbolFileNativePDB *>( m_clang.GetSymbolFile()->GetBackingSymbolFile()); PdbIndex &index = pdb->GetIndex(); @@ -276,7 +278,7 @@ clang::Decl *PdbAstBuilder::GetOrCreateSymbolForId(PdbCompilandSymId id) { } std::optional<CompilerDecl> -PdbAstBuilder::GetOrCreateDeclForUid(PdbSymUid uid) { +PdbAstBuilderClang::GetOrCreateDeclForUid(PdbSymUid uid) { if (clang::Decl *result = TryGetDecl(uid)) return ToCompilerDecl(result); @@ -306,7 +308,7 @@ PdbAstBuilder::GetOrCreateDeclForUid(PdbSymUid uid) { } clang::DeclContext * -PdbAstBuilder::GetOrCreateClangDeclContextForUid(PdbSymUid uid) { +PdbAstBuilderClang::GetOrCreateClangDeclContextForUid(PdbSymUid uid) { if (uid.kind() == PdbSymUidKind::CompilandSym) { if (uid.asCompilandSym().offset == 0) return FromCompilerDeclContext(GetTranslationUnitDecl()); @@ -321,12 +323,13 @@ PdbAstBuilder::GetOrCreateClangDeclContextForUid(PdbSymUid uid) { return clang::Decl::castToDeclContext(decl); } -CompilerDeclContext PdbAstBuilder::GetOrCreateDeclContextForUid(PdbSymUid uid) { +CompilerDeclContext +PdbAstBuilderClang::GetOrCreateDeclContextForUid(PdbSymUid uid) { return ToCompilerDeclContext(GetOrCreateClangDeclContextForUid(uid)); } std::pair<clang::DeclContext *, std::string> -PdbAstBuilder::CreateDeclInfoForUndecoratedName(llvm::StringRef name) { +PdbAstBuilderClang::CreateDeclInfoForUndecoratedName(llvm::StringRef name) { SymbolFileNativePDB *pdb = static_cast<SymbolFileNativePDB *>( m_clang.GetSymbolFile()->GetBackingSymbolFile()); PdbIndex &index = pdb->GetIndex(); @@ -362,12 +365,13 @@ PdbAstBuilder::CreateDeclInfoForUndecoratedName(llvm::StringRef name) { return {context, std::string(uname)}; } -clang::DeclContext *PdbAstBuilder::GetParentClangDeclContext(PdbSymUid uid) { +clang::DeclContext * +PdbAstBuilderClang::GetParentClangDeclContext(PdbSymUid uid) { // We must do this *without* calling GetOrCreate on the current uid, as // that would be an infinite recursion. SymbolFileNativePDB *pdb = static_cast<SymbolFileNativePDB *>( m_clang.GetSymbolFile()->GetBackingSymbolFile()); - PdbIndex& index = pdb->GetIndex(); + PdbIndex &index = pdb->GetIndex(); switch (uid.kind()) { case PdbSymUidKind::CompilandSym: { std::optional<PdbCompilandSymId> scope = @@ -402,7 +406,7 @@ clang::DeclContext *PdbAstBuilder::GetParentClangDeclContext(PdbSymUid uid) { switch (global.kind()) { case SymbolKind::S_GDATA32: case SymbolKind::S_LDATA32: - return CreateDeclInfoForUndecoratedName(getSymbolName(global)).first;; + return CreateDeclInfoForUndecoratedName(getSymbolName(global)).first; case SymbolKind::S_PROCREF: case SymbolKind::S_LPROCREF: { ProcRefSym ref{global.kind()}; @@ -425,11 +429,11 @@ clang::DeclContext *PdbAstBuilder::GetParentClangDeclContext(PdbSymUid uid) { return FromCompilerDeclContext(GetTranslationUnitDecl()); } -CompilerDeclContext PdbAstBuilder::GetParentDeclContext(PdbSymUid uid) { +CompilerDeclContext PdbAstBuilderClang::GetParentDeclContext(PdbSymUid uid) { return ToCompilerDeclContext(GetParentClangDeclContext(uid)); } -bool PdbAstBuilder::CompleteType(CompilerType ct) { +bool PdbAstBuilderClang::CompleteType(CompilerType ct) { if (GetClangASTImporter().CanImport(ct)) return GetClangASTImporter().CompleteType(ct); @@ -447,7 +451,7 @@ bool PdbAstBuilder::CompleteType(CompilerType ct) { return CompleteTagDecl(*tag); } -bool PdbAstBuilder::CompleteTagDecl(clang::TagDecl &tag) { +bool PdbAstBuilderClang::CompleteTagDecl(clang::TagDecl &tag) { // If this is not in our map, it's an error. auto status_iter = m_decl_to_status.find(&tag); lldbassert(status_iter != m_decl_to_status.end()); @@ -507,7 +511,7 @@ bool PdbAstBuilder::CompleteTagDecl(clang::TagDecl &tag) { return true; } -clang::QualType PdbAstBuilder::CreateSimpleType(TypeIndex ti) { +clang::QualType PdbAstBuilderClang::CreateSimpleType(TypeIndex ti) { if (ti == TypeIndex::NullptrT()) return GetBasicType(lldb::eBasicTypeNullPtr); @@ -528,7 +532,8 @@ clang::QualType PdbAstBuilder::CreateSimpleType(TypeIndex ti) { return GetBasicType(bt); } -clang::QualType PdbAstBuilder::CreatePointerType(const PointerRecord &pointer) { +clang::QualType +PdbAstBuilderClang::CreatePointerType(const PointerRecord &pointer) { clang::QualType pointee_type = GetOrCreateClangType(pointer.ReferentType); // This can happen for pointers to LF_VTSHAPE records, which we shouldn't @@ -601,7 +606,7 @@ clang::QualType PdbAstBuilder::CreatePointerType(const PointerRecord &pointer) { } clang::QualType -PdbAstBuilder::CreateModifierType(const ModifierRecord &modifier) { +PdbAstBuilderClang::CreateModifierType(const ModifierRecord &modifier) { clang::QualType unmodified_type = GetOrCreateClangType(modifier.ModifiedType); if (unmodified_type.isNull()) return {}; @@ -614,8 +619,8 @@ PdbAstBuilder::CreateModifierType(const ModifierRecord &modifier) { return unmodified_type; } -clang::QualType PdbAstBuilder::CreateRecordType(PdbTypeSymId id, - const TagRecord &record) { +clang::QualType PdbAstBuilderClang::CreateRecordType(PdbTypeSymId id, + const TagRecord &record) { clang::DeclContext *context = nullptr; std::string uname; std::tie(context, uname) = CreateDeclInfoForType(record, id.index); @@ -649,7 +654,7 @@ clang::QualType PdbAstBuilder::CreateRecordType(PdbTypeSymId id, return result; } -clang::Decl *PdbAstBuilder::TryGetDecl(PdbSymUid uid) const { +clang::Decl *PdbAstBuilderClang::TryGetDecl(PdbSymUid uid) const { auto iter = m_uid_to_decl.find(toOpaqueUid(uid)); if (iter != m_uid_to_decl.end()) return iter->second; @@ -657,8 +662,8 @@ clang::Decl *PdbAstBuilder::TryGetDecl(PdbSymUid uid) const { } clang::NamespaceDecl * -PdbAstBuilder::GetOrCreateNamespaceDecl(const char *name, - clang::DeclContext &context) { +PdbAstBuilderClang::GetOrCreateNamespaceDecl(const char *name, + clang::DeclContext &context) { clang::NamespaceDecl *ns = m_clang.GetUniqueNamespaceDeclaration( IsAnonymousNamespaceName(name) ? nullptr : name, &context, OptionalClangModuleID()); @@ -668,7 +673,7 @@ PdbAstBuilder::GetOrCreateNamespaceDecl(const char *name, } clang::BlockDecl * -PdbAstBuilder::GetOrCreateBlockDecl(PdbCompilandSymId block_id) { +PdbAstBuilderClang::GetOrCreateBlockDecl(PdbCompilandSymId block_id) { if (clang::Decl *decl = TryGetDecl(block_id)) return llvm::dyn_cast<clang::BlockDecl>(decl); @@ -686,8 +691,9 @@ PdbAstBuilder::GetOrCreateBlockDecl(PdbCompilandSymId block_id) { return block_decl; } -clang::VarDecl *PdbAstBuilder::CreateVariableDecl(PdbSymUid uid, CVSymbol sym, - clang::DeclContext &scope) { +clang::VarDecl * +PdbAstBuilderClang::CreateVariableDecl(PdbSymUid uid, CVSymbol sym, + clang::DeclContext &scope) { VariableInfo var_info = GetVariableNameInfo(sym); clang::QualType qt = GetOrCreateClangType(var_info.type); if (qt.isNull()) @@ -705,8 +711,8 @@ clang::VarDecl *PdbAstBuilder::CreateVariableDecl(PdbSymUid uid, CVSymbol sym, } clang::VarDecl * -PdbAstBuilder::GetOrCreateVariableDecl(PdbCompilandSymId scope_id, - PdbCompilandSymId var_id) { +PdbAstBuilderClang::GetOrCreateVariableDecl(PdbCompilandSymId scope_id, + PdbCompilandSymId var_id) { if (clang::Decl *decl = TryGetDecl(var_id)) return llvm::dyn_cast<clang::VarDecl>(decl); @@ -721,7 +727,8 @@ PdbAstBuilder::GetOrCreateVariableDecl(PdbCompilandSymId scope_id, return CreateVariableDecl(PdbSymUid(var_id), sym, *scope); } -clang::VarDecl *PdbAstBuilder::GetOrCreateVariableDecl(PdbGlobalSymId var_id) { +clang::VarDecl * +PdbAstBuilderClang::GetOrCreateVariableDecl(PdbGlobalSymId var_id) { if (clang::Decl *decl = TryGetDecl(var_id)) return llvm::dyn_cast<clang::VarDecl>(decl); @@ -733,7 +740,7 @@ clang::VarDecl *PdbAstBuilder::GetOrCreateVariableDecl(PdbGlobalSymId var_id) { return CreateVariableDecl(PdbSymUid(var_id), sym, *context); } -CompilerType PdbAstBuilder::GetOrCreateTypedefType(PdbGlobalSymId id) { +CompilerType PdbAstBuilderClang::GetOrCreateTypedefType(PdbGlobalSymId id) { if (clang::Decl *decl = TryGetDecl(id)) { if (auto *tnd = llvm::dyn_cast<clang::TypedefNameDecl>(decl)) return ToCompilerType(m_clang.getASTContext().getTypeDeclType(tnd)); @@ -765,12 +772,12 @@ CompilerType PdbAstBuilder::GetOrCreateTypedefType(PdbGlobalSymId id) { return ct; } -clang::QualType PdbAstBuilder::GetBasicType(lldb::BasicType type) { +clang::QualType PdbAstBuilderClang::GetBasicType(lldb::BasicType type) { CompilerType ct = m_clang.GetBasicType(type); return clang::QualType::getFromOpaquePtr(ct.GetOpaqueQualType()); } -clang::QualType PdbAstBuilder::CreateType(PdbTypeSymId type) { +clang::QualType PdbAstBuilderClang::CreateType(PdbTypeSymId type) { if (type.index.isSimple()) return CreateSimpleType(type.index); @@ -824,7 +831,7 @@ clang::QualType PdbAstBuilder::CreateType(PdbTypeSymId type) { return {}; } -clang::QualType PdbAstBuilder::GetOrCreateClangType(PdbTypeSymId type) { +clang::QualType PdbAstBuilderClang::GetOrCreateClangType(PdbTypeSymId typ... [truncated] `````````` </details> https://github.com/llvm/llvm-project/pull/175840 _______________________________________________ lldb-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
