[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) {
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.

  rG LLVM Github Monorepo



More information about the lldb-commits mailing list