[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