diff --git a/lldb/include/lldb/Target/Language.h b/lldb/include/lldb/Target/Language.h --- a/lldb/include/lldb/Target/Language.h +++ b/lldb/include/lldb/Target/Language.h @@ -207,6 +207,9 @@ /// This function should only return true if there is a high confidence /// that the name actually belongs to this language. virtual bool SymbolNameFitsToLanguage(Mangled name) const { return false; } + virtual bool SymbolNameFitsToLanguage(char const *mangled) const { + return false; + } // if an individual data formatter can apply to several types and cross a // language boundary it makes sense for individual languages to want to diff --git a/lldb/source/Plugins/Language/CPlusPlus/CPlusPlusLanguage.h b/lldb/source/Plugins/Language/CPlusPlus/CPlusPlusLanguage.h --- a/lldb/source/Plugins/Language/CPlusPlus/CPlusPlusLanguage.h +++ b/lldb/source/Plugins/Language/CPlusPlus/CPlusPlusLanguage.h @@ -107,7 +107,8 @@ static llvm::StringRef GetPluginNameStatic() { return "cplusplus"; } bool SymbolNameFitsToLanguage(Mangled mangled) const override; - + bool SymbolNameFitsToLanguage(char const *mangled) const override; + bool DemangledNameContainsPath(llvm::StringRef path, ConstString demangled) const override; diff --git a/lldb/source/Plugins/Language/CPlusPlus/CPlusPlusLanguage.cpp b/lldb/source/Plugins/Language/CPlusPlus/CPlusPlusLanguage.cpp --- a/lldb/source/Plugins/Language/CPlusPlus/CPlusPlusLanguage.cpp +++ b/lldb/source/Plugins/Language/CPlusPlus/CPlusPlusLanguage.cpp @@ -63,6 +63,10 @@ return mangled_name && CPlusPlusLanguage::IsCPPMangledName(mangled_name); } +bool CPlusPlusLanguage::SymbolNameFitsToLanguage(char const *mangled) const { + return mangled && CPlusPlusLanguage::IsCPPMangledName(mangled); +} + ConstString CPlusPlusLanguage::GetDemangledFunctionNameWithoutArguments( Mangled mangled) const { const char *mangled_name_cstr = mangled.GetMangledName().GetCString();