[Lldb-commits] [PATCH] D74187: [lldb] Add method Language::IsMangledName

Med Ismail Bennani via Phabricator via lldb-commits lldb-commits at lists.llvm.org
Sat Feb 8 03:21:29 PST 2020


mib added inline comments.


================
Comment at: lldb/source/Plugins/Language/ObjC/ObjCLanguage.h:96-98
+  bool IsMangledName(llvm::StringRef name) const override {
+    return false;
+  }
----------------
friss wrote:
> shafik wrote:
> > xiaobai wrote:
> > > friss wrote:
> > > > The original code was calling `IsPossibleObjCMethodName` and it looks like you completely lose this codepath with this rewrite. Unclear to me if it's the right thing to return here, but that's definitely a change in behavior.
> > > If I understand correctly, Objective-C names aren't mangled in general, and are usually stored in the `m_demangled` name of `Mangled`, so that code path should have been bogus to begin with. Maybe I'm missing a detail though?
> > > 
> > > I can add a comment to this to clarify that Objective-C names aren't mangled (if I am correct in my understanding).
> > I believe this is true, I have not verified it myself. I believe what happens is that `m_mangled` is just set directly in the Objective-C but it probably would be nice to verify this via a test in `MangledTest.cpp` I actually though @mib had added a test here for Objective-C the other day.
> > If I understand correctly, Objective-C names aren't mangled in general, and are usually stored in the m_demangled name of Mangled, so that code path should have been bogus to begin with. Maybe I'm missing a detail though?
> 
> I'm just pointing out a change in behavior. If a `Mangled` object had `m_mangled` set to an Obj-C method name, `GuessLanguage()` would have returned `eLanguageTypeObjC` before your patch. It won't do it after. I don't actually know whether we ever put a method name in `m_mangled`, but I bet we do.
> 
> Whether Obj-C symbols are actually mangled or not is debatable too. The name of the method symbol tells you whether it is a class or instance method and the number and names of arguments. Looks pretty close to the information the C++ mangling gives you for a symbol.
In D71237, I only added a test for the `function.mangled-name` frame-format entity with a C++ example.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D74187/new/

https://reviews.llvm.org/D74187





More information about the lldb-commits mailing list