[Lldb-commits] [lldb] 46883f4 - [lldb][NFC] NFC refactoring for ClangExpressionDeclMap::LookupInModulesDeclVendor
Raphael Isemann via lldb-commits
lldb-commits at lists.llvm.org
Sat Nov 23 11:31:23 PST 2019
Author: Raphael Isemann
Date: 2019-11-23T20:31:13+01:00
New Revision: 46883f46dc4f0ec3eb5cf2a6c5492bbd2c57c8c2
URL: https://github.com/llvm/llvm-project/commit/46883f46dc4f0ec3eb5cf2a6c5492bbd2c57c8c2
DIFF: https://github.com/llvm/llvm-project/commit/46883f46dc4f0ec3eb5cf2a6c5492bbd2c57c8c2.diff
LOG: [lldb][NFC] NFC refactoring for ClangExpressionDeclMap::LookupInModulesDeclVendor
Early exiting and deduplicating copy-pasted code.
Added:
Modified:
lldb/source/Plugins/ExpressionParser/Clang/ClangExpressionDeclMap.cpp
Removed:
################################################################################
diff --git a/lldb/source/Plugins/ExpressionParser/Clang/ClangExpressionDeclMap.cpp b/lldb/source/Plugins/ExpressionParser/Clang/ClangExpressionDeclMap.cpp
index 53bcde940e9a..60759be0eb0f 100644
--- a/lldb/source/Plugins/ExpressionParser/Clang/ClangExpressionDeclMap.cpp
+++ b/lldb/source/Plugins/ExpressionParser/Clang/ClangExpressionDeclMap.cpp
@@ -1103,69 +1103,44 @@ void ClangExpressionDeclMap::LookupInModulesDeclVendor(
NameSearchContext &context, ConstString name, unsigned current_id) {
Log *log(lldb_private::GetLogIfAllCategoriesSet(LIBLLDB_LOG_EXPRESSIONS));
- if (ClangModulesDeclVendor *modules_decl_vendor =
- m_target->GetClangModulesDeclVendor()) {
- bool append = false;
- uint32_t max_matches = 1;
- std::vector<clang::NamedDecl *> decls;
-
- if (!modules_decl_vendor->FindDecls(name, append, max_matches, decls))
- return;
-
- clang::NamedDecl *const decl_from_modules = decls[0];
-
- if (llvm::isa<clang::FunctionDecl>(decl_from_modules)) {
- if (log) {
- LLDB_LOGF(log,
- " CAS::FEVD[%u] Matching function found for "
- "\"%s\" in the modules",
- current_id, name.GetCString());
- }
-
- clang::Decl *copied_decl = CopyDecl(decl_from_modules);
- clang::FunctionDecl *copied_function_decl =
- copied_decl ? dyn_cast<clang::FunctionDecl>(copied_decl) : nullptr;
-
- if (!copied_function_decl) {
- LLDB_LOGF(log,
- " CAS::FEVD[%u] - Couldn't export a function "
- "declaration from the modules",
- current_id);
-
- return;
- }
+ auto *modules_decl_vendor = m_target->GetClangModulesDeclVendor();
+ if (!modules_decl_vendor)
+ return;
- MaybeRegisterFunctionBody(copied_function_decl);
+ bool append = false;
+ uint32_t max_matches = 1;
+ std::vector<clang::NamedDecl *> decls;
- context.AddNamedDecl(copied_function_decl);
+ if (!modules_decl_vendor->FindDecls(name, append, max_matches, decls))
+ return;
- context.m_found.function_with_type_info = true;
- context.m_found.function = true;
- } else if (llvm::isa<clang::VarDecl>(decl_from_modules)) {
- if (log) {
- LLDB_LOGF(log,
- " CAS::FEVD[%u] Matching variable found for "
- "\"%s\" in the modules",
- current_id, name.GetCString());
- }
+ assert(!decls.empty() && "FindDecls returned true but no decls?");
+ clang::NamedDecl *const decl_from_modules = decls[0];
- clang::Decl *copied_decl = CopyDecl(decl_from_modules);
- clang::VarDecl *copied_var_decl =
- copied_decl ? dyn_cast_or_null<clang::VarDecl>(copied_decl) : nullptr;
+ LLDB_LOG(log,
+ " CAS::FEVD[{0}] Matching decl found for "
+ "\"{1}\" in the modules",
+ current_id, name);
- if (!copied_var_decl) {
- LLDB_LOGF(log,
- " CAS::FEVD[%u] - Couldn't export a variable "
- "declaration from the modules",
- current_id);
+ clang::Decl *copied_decl = CopyDecl(decl_from_modules);
+ if (!copied_decl) {
+ LLDB_LOG(log,
+ " CAS::FEVD[{0}] - Couldn't export a "
+ "declaration from the modules",
+ current_id);
+ return;
+ }
- return;
- }
+ if (auto copied_function = dyn_cast<clang::FunctionDecl>(copied_decl)) {
+ MaybeRegisterFunctionBody(copied_function);
- context.AddNamedDecl(copied_var_decl);
+ context.AddNamedDecl(copied_function);
- context.m_found.variable = true;
- }
+ context.m_found.function_with_type_info = true;
+ context.m_found.function = true;
+ } else if (auto copied_var = dyn_cast<clang::VarDecl>(copied_decl)) {
+ context.AddNamedDecl(copied_var);
+ context.m_found.variable = true;
}
}
More information about the lldb-commits
mailing list