[Lldb-commits] [lldb] [WIP] [lldb][Progress] Report progress when completing types from DWARF (PR #91452)
Adrian Prantl via lldb-commits
lldb-commits at lists.llvm.org
Wed May 8 09:14:42 PDT 2024
================
@@ -1411,3 +1414,35 @@ clang::Decl *
ClangASTImporter::ASTImporterDelegate::GetOriginalDecl(clang::Decl *To) {
return m_main.GetDeclOrigin(To).decl;
}
+
+void ClangASTImporter::ASTImporterDelegate::UpdateImportProgress(
+ clang::Decl const *From) {
+ assert(From &&
+ "Trying to report import progress using an invalid clang::Decl.");
+
+ // If we can't determine the decl's name, we don't know what to
+ // update the progress bar with. So bail out.
+ auto const *ND = dyn_cast<NamedDecl>(From);
+ if (!ND)
+ return;
+
+ if (!m_import_progress_up) {
+ auto const *from_ast =
+ TypeSystemClang::GetASTContext(&From->getASTContext());
+ auto const *to_ast = TypeSystemClang::GetASTContext(&getToContext());
+
+ assert(from_ast && to_ast);
+
+ llvm::SmallVector<llvm::StringRef> from_name_parts;
+ llvm::SplitString(from_ast->getDisplayName(), from_name_parts, "/");
+ auto from_name = from_name_parts.back();
+
+ llvm::SmallVector<llvm::StringRef> to_name_parts;
+ llvm::SplitString(to_ast->getDisplayName(), to_name_parts, "/");
----------------
adrian-prantl wrote:
`StringRef::rsplit` is going to be more efficient for this.
https://github.com/llvm/llvm-project/pull/91452
More information about the lldb-commits
mailing list