Author: Alex Langford
Date: 2025-12-15T10:51:48-08:00
New Revision: 34f63032932af3af49ddc56dcb86ec8115b25344

URL: 
https://github.com/llvm/llvm-project/commit/34f63032932af3af49ddc56dcb86ec8115b25344
DIFF: 
https://github.com/llvm/llvm-project/commit/34f63032932af3af49ddc56dcb86ec8115b25344.diff

LOG: [lldb][NFCI] Make LookupInfo const (#171901)

Instead of changing an existing LookupInfo after creation, let's make
them constant.

Added: 
    

Modified: 
    lldb/include/lldb/Core/Module.h
    lldb/source/Breakpoint/BreakpointResolverName.cpp
    lldb/source/Core/Module.cpp
    lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp

Removed: 
    


################################################################################
diff  --git a/lldb/include/lldb/Core/Module.h b/lldb/include/lldb/Core/Module.h
index 40ce23e3d2ffb..643b9a5c3bf54 100644
--- a/lldb/include/lldb/Core/Module.h
+++ b/lldb/include/lldb/Core/Module.h
@@ -909,6 +909,9 @@ class Module : public std::enable_shared_from_this<Module>,
   public:
     LookupInfo() = default;
 
+    /// Copies an existing LookupInfo with a 
diff erent lookup name.
+    LookupInfo(const LookupInfo &lookup_info, ConstString lookup_name);
+
     /// Creates a vector of lookup infos for function name resolution.
     ///
     /// \param[in] name
@@ -925,28 +928,26 @@ class Module : public 
std::enable_shared_from_this<Module>,
     ///     The language to create lookups for. If eLanguageTypeUnknown is
     ///     passed, creates one LookupInfo for each language plugin currently
     ///     available in LLDB. If a specific language is provided, creates only
-    //      a single LookupInfo for that language.
+    ///     a single LookupInfo for that language.
+    ///
+    /// \param[in] lookup_name_override
+    ///     Manually override the name used for lookup. This parameter is
+    ///     optional. If not provided, it will be set to the value of the name
+    ///     parameter.
     ///
     /// \return
     ///     A vector of LookupInfo objects, one per relevant language.
     static std::vector<LookupInfo>
     MakeLookupInfos(ConstString name, lldb::FunctionNameType name_type_mask,
-                    lldb::LanguageType lang_type);
+                    lldb::LanguageType lang_type,
+                    ConstString lookup_name_override = {});
 
     ConstString GetName() const { return m_name; }
 
-    void SetName(ConstString name) { m_name = name; }
-
     ConstString GetLookupName() const { return m_lookup_name; }
 
-    void SetLookupName(ConstString name) { m_lookup_name = name; }
-
     lldb::FunctionNameType GetNameTypeMask() const { return m_name_type_mask; }
 
-    void SetNameTypeMask(lldb::FunctionNameType mask) {
-      m_name_type_mask = mask;
-    }
-
     lldb::LanguageType GetLanguageType() const { return m_language; }
 
     bool NameMatchesLookupInfo(
@@ -974,7 +975,8 @@ class Module : public std::enable_shared_from_this<Module>,
     bool m_match_name_after_lookup = false;
 
   private:
-    LookupInfo(ConstString name, lldb::FunctionNameType name_type_mask,
+    LookupInfo(ConstString name, ConstString lookup_name,
+               lldb::FunctionNameType name_type_mask,
                lldb::LanguageType lang_type);
   };
 

diff  --git a/lldb/source/Breakpoint/BreakpointResolverName.cpp 
b/lldb/source/Breakpoint/BreakpointResolverName.cpp
index 2025f59eacb92..6bb76b71e6e24 100644
--- a/lldb/source/Breakpoint/BreakpointResolverName.cpp
+++ b/lldb/source/Breakpoint/BreakpointResolverName.cpp
@@ -229,10 +229,8 @@ void BreakpointResolverName::AddNameLookup(ConstString 
name,
       if (variant.GetType() & lldb::eFunctionNameTypeFull) {
         std::vector<Module::LookupInfo> variant_lookups =
             Module::LookupInfo::MakeLookupInfos(name, variant.GetType(),
-                                                lang->GetLanguageType());
-        llvm::for_each(variant_lookups, [&](auto &variant_lookup) {
-          variant_lookup.SetLookupName(variant.GetName());
-        });
+                                                lang->GetLanguageType(),
+                                                variant.GetName());
         llvm::append_range(m_lookups, variant_lookups);
       }
     }

diff  --git a/lldb/source/Core/Module.cpp b/lldb/source/Core/Module.cpp
index 466340b0e0990..617e2d0904e83 100644
--- a/lldb/source/Core/Module.cpp
+++ b/lldb/source/Core/Module.cpp
@@ -641,10 +641,16 @@ void Module::FindCompileUnits(const FileSpec &path,
   }
 }
 
-Module::LookupInfo::LookupInfo(ConstString name,
+Module::LookupInfo::LookupInfo(const LookupInfo &lookup_info,
+                               ConstString lookup_name)
+    : m_name(lookup_info.GetName()), m_lookup_name(lookup_name),
+      m_language(lookup_info.GetLanguageType()),
+      m_name_type_mask(lookup_info.GetNameTypeMask()) {}
+
+Module::LookupInfo::LookupInfo(ConstString name, ConstString lookup_name,
                                FunctionNameType name_type_mask,
                                LanguageType lang_type)
-    : m_name(name), m_lookup_name(name), m_language(lang_type) {
+    : m_name(name), m_lookup_name(lookup_name), m_language(lang_type) {
   std::optional<ConstString> basename;
   Language *lang = Language::FindPlugin(lang_type);
 
@@ -696,10 +702,9 @@ Module::LookupInfo::LookupInfo(ConstString name,
   }
 }
 
-std::vector<Module::LookupInfo>
-Module::LookupInfo::MakeLookupInfos(ConstString name,
-                                    lldb::FunctionNameType name_type_mask,
-                                    lldb::LanguageType lang_type) {
+std::vector<Module::LookupInfo> Module::LookupInfo::MakeLookupInfos(
+    ConstString name, lldb::FunctionNameType name_type_mask,
+    lldb::LanguageType lang_type, ConstString lookup_name_override) {
   std::vector<LanguageType> lang_types;
   if (lang_type != eLanguageTypeUnknown) {
     lang_types.push_back(lang_type);
@@ -717,10 +722,12 @@ Module::LookupInfo::MakeLookupInfos(ConstString name,
       lang_types = {eLanguageTypeObjC, eLanguageTypeC_plus_plus};
   }
 
+  ConstString lookup_name = lookup_name_override ? lookup_name_override : name;
+
   std::vector<Module::LookupInfo> infos;
   infos.reserve(lang_types.size());
   for (LanguageType lang_type : lang_types) {
-    Module::LookupInfo info(name, name_type_mask, lang_type);
+    Module::LookupInfo info(name, lookup_name, name_type_mask, lang_type);
     infos.push_back(info);
   }
   return infos;

diff  --git a/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp 
b/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp
index dbd47901578dd..e1210a1310772 100644
--- a/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp
+++ b/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp
@@ -2737,8 +2737,8 @@ void SymbolFileDWARF::FindFunctions(const 
Module::LookupInfo &lookup_info,
     if (it != llvm::StringRef::npos) {
       const llvm::StringRef name_no_template_params = name_ref.slice(0, it);
 
-      Module::LookupInfo no_tp_lookup_info(lookup_info);
-      no_tp_lookup_info.SetLookupName(ConstString(name_no_template_params));
+      Module::LookupInfo no_tp_lookup_info(
+          lookup_info, ConstString(name_no_template_params));
       m_index->GetFunctions(no_tp_lookup_info, *this, parent_decl_ctx,
                             [&](DWARFDIE die) {
                               if (resolved_dies.insert(die.GetDIE()).second)


        
_______________________________________________
lldb-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to