[PATCH] D50394: [MS Demangler] Properly handle backreferences of special names

Zachary Turner via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Aug 7 09:36:33 PDT 2018


zturner created this revision.
zturner added reviewers: majnemer, rnk, ruiu.
Herald added subscribers: erik.pilkington, hiraditya.

  Function template names are not stored in the backref table,
  but non-template function names are.  The general pattern seems
  to be that when you are demangling a symbol name, if the name
  starts with '?' it does not go into the backreference table,
  otherwise it does.  Note that this even handles the general case
  of operator names (template or otherwise) not going into the
  back-reference table, anonymous namespaces not going into the
  backreference table, and perhaps other yet-to-be-supported kinds
  of names.
  
  It's important that we apply this check only for the
  *unqualified* portion of a name, and only for *symbol* names.
  For example, this does not apply to type names (such as class
  templates) and we need to make sure that these still do go
  into the backref table.
  
  There is still one remaining backreference test failure, and
  although the failure is likely related, this code is complex enough
  that I'd rather address it separately.


https://reviews.llvm.org/D50394

Files:
  llvm/lib/Demangle/MicrosoftDemangle.cpp
  llvm/test/Demangle/ms-back-references.test

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D50394.159528.patch
Type: text/x-patch
Size: 5262 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20180807/0a122285/attachment.bin>


More information about the llvm-commits mailing list