[all-commits] [llvm/llvm-project] 134e18: [lldb] change name demangling to be consistent bet...

lfolger via All-commits all-commits at lists.llvm.org
Tue Oct 19 03:05:07 PDT 2021


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 134e1817f62c08cde1ed1f7e94e51425536085ac
      https://github.com/llvm/llvm-project/commit/134e1817f62c08cde1ed1f7e94e51425536085ac
  Author: Lasse Folger <lassefolger at google.com>
  Date:   2021-10-19 (Tue, 19 Oct 2021)

  Changed paths:
    M lldb/source/Core/Mangled.cpp
    M llvm/include/llvm/Demangle/Demangle.h
    M llvm/include/llvm/Demangle/MicrosoftDemangleNodes.h
    M llvm/lib/Demangle/MicrosoftDemangle.cpp
    M llvm/lib/Demangle/MicrosoftDemangleNodes.cpp
    M llvm/test/Demangle/ms-options.test
    M llvm/tools/llvm-undname/llvm-undname.cpp

  Log Message:
  -----------
  [lldb] change name demangling to be consistent between windows and linx

When printing names in lldb on windows these names contain the full type information while on linux only the name is contained.

This change introduces a flag in the Microsoft demangler to control if the type information should be included.
With the flag enabled demangled name contains only the qualified name, e.g:
without flag -> with flag
int (*array2d)[10] -> array2d
int (*abc::array2d)[10] -> abc::array2d
const int *x -> x

For globals there is a second inconsistency which is not yet addressed by this change. On linux globals (in global namespace) are prefixed with :: while on windows they are not.

Reviewed By: teemperor, rnk

Differential Revision: https://reviews.llvm.org/D111715




More information about the All-commits mailing list