labath added a comment. It sounds like we have a plan then! Look forward to seeing the results.
================ Comment at: source/Core/RichManglingInfo.cpp:36-40 +RichManglingContext::SetLegacyCxxParserInfo(const ConstString &mangled) { + m_info.ResetProvider(); + m_info.m_provider = RichManglingInfo::PluginCxxLanguage; + m_info.m_legacy_parser = new CPlusPlusLanguage::MethodName(mangled); + return &m_info; ---------------- sgraenitz wrote: > labath wrote: > > sgraenitz wrote: > > > labath wrote: > > > > Is this really the **mangled** name? > > > Yes, it is. > > How is that possible? I see nothing in CPlusPlusLanguage::MethodName which > > would perform the demangling, and yet it clearly operates on demangled > > names. Also, the LHS of this patch creates MethodName instances like this > > `CPlusPlusLanguage::MethodName > > cxx_method(mangled.GetDemangledName(lldb::eLanguageTypeC_plus_plus));` > > > > > Oh right, I should revisit that. > > While we are here: It's a pity that only MSVC-mangled names trigger the > fallback case with the new implementation. Thus, my unit test has no coverage > for it and I didn't recognize the mistake. I thought about integrating > ObjCLanguage parsing here too. On the one hand this would improve test > coverage. On the other hand it would cause a semantic change in name indexing > (and my ObjC knowledge is quite limited). > > What do you think? I understand Zachary is working on an MSVC demangler as we speak. When that's finished, we should be able to add a couple of MSVC mangled names to your test case. (The `MethodName` class itself is tested elsewhere, so here we just need to test that things are wired up correctly.) As for the ObjC idea, I am not sure what exactly would that entail, so I don't have an opinion on it. But I can certainly believe that there is a lot of room for improvement here. https://reviews.llvm.org/D50071 _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits