[PATCH] D67301: [LLD] Use the unified llvm demangle frontend function. NFC.

Fangrui Song via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Sep 10 07:46:17 PDT 2019


MaskRay added a comment.

This change is not NFC. This will cause every port of LLD to demangle more names than which were allowed before.

tryDemangle can decode more names than `_Z` `__Z` `___Z` `____Z` prefixed names, as can be seen from the source:

  // <mangled-name> ::= _Z <encoding>
  //                ::= <type>
  // extension      ::= ___Z <encoding> _block_invoke
  // extension      ::= ___Z <encoding> _block_invoke<decimal-digit>+
  // extension      ::= ___Z <encoding> _block_invoke_<decimal-digit>+
  template <typename Derived, typename Alloc>
  Node *AbstractManglingParser<Derived, Alloc>::parse() {

I hope at least for ELF, you can keep the `"_Z"` prefix check. It doesn't need the ObjC `"___Z"` extension.


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

https://reviews.llvm.org/D67301





More information about the llvm-commits mailing list