[PATCH] D123138: [demangler] Fix undocumented Local encoding

Nathan Sidwell via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Apr 5 09:35:36 PDT 2022


urnathan created this revision.
urnathan added reviewers: iains, libc++abi.
Herald added a project: All.
urnathan requested review of this revision.
Herald added a project: LLVM.
Herald added a subscriber: llvm-commits.

GCC emits [some] static symbols with an 'L' mangling, which we attempt to demangle.  But the module mangling changes have exposed that we were doing so at the wrong level.  AFAICT this isn't documented in the ABI. This adjusts the demangler along the same lines as the existing gcc demangler (which is not yet module-aware).  'L' is part of an unqualified name.  As before we merely parse the 'L', and then ignore it.

@iains discovered this problem when playing with gcc's module implementation.

[I have GCC demangler patches, but GCC is currently stabilizing for release.]


https://reviews.llvm.org/D123138

Files:
  libcxxabi/src/demangle/ItaniumDemangle.h
  libcxxabi/test/test_demangle.pass.cpp
  llvm/include/llvm/Demangle/ItaniumDemangle.h

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D123138.420552.patch
Type: text/x-patch
Size: 7567 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20220405/bf8f67d1/attachment.bin>


More information about the llvm-commits mailing list