[Lldb-commits] [PATCH] D73191: Only match mangled name in full-name function lookup (with accelerators)

Raphael Isemann via Phabricator via lldb-commits lldb-commits at lists.llvm.org
Wed Aug 4 04:16:20 PDT 2021


teemperor added inline comments.


================
Comment at: lldb/source/Plugins/SymbolFile/DWARF/DWARFIndex.cpp:43
+  // In case of a full match, we insert functions with a matching mangled name.
+  if (name_type_mask & eFunctionNameTypeFull && die.GetMangledName() == name) {
     dies.push_back(die);
----------------
FWIW, I believe neither the old nor the new version of this check are fully correct (but this version is at least much closer to the intended functionality).

`eFunctionNameTypeFull` is documented as:

```
    ///< For C this is the same as just the name of the function For C++ this is
    ///< the mangled or demangled version of the mangled name. For ObjC this is
    ///< the full function signature with the + or - and the square brackets and
    ///< the class and selector
```

The C++ mangled name case is clearly covered. The C and Obj-C are covered because of the (rather interesting...) property for GetMangledName to return the DW_AT_NAME (which is the demangled name for C/Obj-C) when the mangled name is not specified in DWARF. But the demangled C++ name case isn't covered unless I'm missing something.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D73191



More information about the lldb-commits mailing list