bulbazord created this revision.
bulbazord added reviewers: clayborg, jingham, teemperor, JDevlieghere.
Herald added a subscriber: mgorny.
bulbazord requested review of this revision.
Herald added a project: LLDB.
My goal is to remove lldbExpression's dependence on
lldbPluginCPlusPlusLanguage. I initially deleted this code in
to see what tests failed so that I could better understand how to
trigger this code path. No tests failed and I was unable to figure out
how to trigger the path manually, so I would like to delete it.
Repository:
rG LLVM Github Monorepo
https://reviews.llvm.org/D108395
Files:
lldb/source/Expression/CMakeLists.txt
lldb/source/Expression/IRExecutionUnit.cpp
Index: lldb/source/Expression/IRExecutionUnit.cpp
===================================================================
--- lldb/source/Expression/IRExecutionUnit.cpp
+++ lldb/source/Expression/IRExecutionUnit.cpp
@@ -33,7 +33,6 @@
#include "lldb/Utility/LLDBAssert.h"
#include "lldb/Utility/Log.h"
-#include "lldb/../../source/Plugins/Language/CPlusPlus/CPlusPlusLanguage.h"
#include "lldb/../../source/Plugins/ObjectFile/JIT/ObjectFileJIT.h"
using namespace lldb_private;
@@ -652,52 +651,6 @@
return return_value;
}
-static ConstString FindBestAlternateMangledName(ConstString demangled,
- const SymbolContext &sym_ctx) {
- CPlusPlusLanguage::MethodName cpp_name(demangled);
- std::string scope_qualified_name = cpp_name.GetScopeQualifiedName();
-
- if (!scope_qualified_name.size())
- return ConstString();
-
- if (!sym_ctx.module_sp)
- return ConstString();
-
- lldb_private::SymbolFile *sym_file = sym_ctx.module_sp->GetSymbolFile();
- if (!sym_file)
- return ConstString();
-
- std::vector<ConstString> alternates;
- sym_file->GetMangledNamesForFunction(scope_qualified_name, alternates);
-
- std::vector<ConstString> param_and_qual_matches;
- std::vector<ConstString> param_matches;
- for (size_t i = 0; i < alternates.size(); i++) {
- ConstString alternate_mangled_name = alternates[i];
- Mangled mangled(alternate_mangled_name);
- ConstString demangled = mangled.GetDemangledName();
-
- CPlusPlusLanguage::MethodName alternate_cpp_name(demangled);
- if (!cpp_name.IsValid())
- continue;
-
- if (alternate_cpp_name.GetArguments() == cpp_name.GetArguments()) {
- if (alternate_cpp_name.GetQualifiers() == cpp_name.GetQualifiers())
- param_and_qual_matches.push_back(alternate_mangled_name);
- else
- param_matches.push_back(alternate_mangled_name);
- }
- }
-
- if (param_and_qual_matches.size())
- return param_and_qual_matches[0]; // It is assumed that there will be only
- // one!
- else if (param_matches.size())
- return param_matches[0]; // Return one of them as a best match
- else
- return ConstString();
-}
-
struct IRExecutionUnit::SearchSpec {
ConstString name;
lldb::FunctionNameType mask;
@@ -715,32 +668,6 @@
C_specs.push_back(SearchSpec(name));
}
-void IRExecutionUnit::CollectCandidateCPlusPlusNames(
- std::vector<IRExecutionUnit::SearchSpec> &CPP_specs,
- const std::vector<SearchSpec> &C_specs, const SymbolContext &sc) {
- for (const SearchSpec &C_spec : C_specs) {
- ConstString name = C_spec.name;
-
- if (CPlusPlusLanguage::IsCPPMangledName(name.GetCString())) {
- Mangled mangled(name);
- ConstString demangled = mangled.GetDemangledName();
-
- if (demangled) {
- ConstString best_alternate_mangled_name =
- FindBestAlternateMangledName(demangled, sc);
-
- if (best_alternate_mangled_name) {
- CPP_specs.push_back(best_alternate_mangled_name);
- }
- }
- }
-
- std::set<ConstString> alternates;
- CPlusPlusLanguage::FindAlternateFunctionManglings(name, alternates);
- CPP_specs.insert(CPP_specs.end(), alternates.begin(), alternates.end());
- }
-}
-
void IRExecutionUnit::CollectFallbackNames(
std::vector<SearchSpec> &fallback_specs,
const std::vector<SearchSpec> &C_specs) {
@@ -750,9 +677,6 @@
for (const SearchSpec &C_spec : C_specs) {
ConstString name = C_spec.name;
- if (!CPlusPlusLanguage::IsCPPMangledName(name.GetCString()))
- continue;
-
Mangled mangled_name(name);
ConstString demangled_name = mangled_name.GetDemangledName();
if (demangled_name.IsEmpty())
@@ -939,7 +863,6 @@
lldb::addr_t
IRExecutionUnit::FindSymbol(lldb_private::ConstString name, bool &missing_weak) {
std::vector<SearchSpec> candidate_C_names;
- std::vector<SearchSpec> candidate_CPlusPlus_names;
CollectCandidateCNames(candidate_C_names, name);
@@ -958,12 +881,6 @@
if (ret != LLDB_INVALID_ADDRESS)
return ret;
- CollectCandidateCPlusPlusNames(candidate_CPlusPlus_names, candidate_C_names,
- m_sym_ctx);
- ret = FindInSymbols(candidate_CPlusPlus_names, m_sym_ctx, missing_weak);
- if (ret != LLDB_INVALID_ADDRESS)
- return ret;
-
std::vector<SearchSpec> candidate_fallback_names;
CollectFallbackNames(candidate_fallback_names, candidate_C_names);
Index: lldb/source/Expression/CMakeLists.txt
===================================================================
--- lldb/source/Expression/CMakeLists.txt
+++ lldb/source/Expression/CMakeLists.txt
@@ -23,7 +23,6 @@
lldbSymbol
lldbTarget
lldbUtility
- lldbPluginCPlusPlusLanguage
lldbPluginObjectFileJIT
LINK_COMPONENTS
_______________________________________________
lldb-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits