[itanium demangler] Support dot suffixes on block invocation functions

rdar://32378759

llvm-svn: 338747
This commit is contained in:
Erik Pilkington 2018-08-02 17:45:01 +00:00
parent af3367d2ff
commit 90dc82e955
3 changed files with 6 additions and 0 deletions

View File

@ -4935,6 +4935,8 @@ Node *Db::parse() {
bool RequireNumber = consumeIf('_');
if (parseNumber().empty() && RequireNumber)
return nullptr;
if (look() == '.')
First = Last;
if (numLeft() != 0)
return nullptr;
return make<SpecialName>("invocation function for block in ", Encoding);

View File

@ -29753,6 +29753,8 @@ const char* cases[][2] =
// reference collapsing:
{"_Z1fIR1SEiOT_", "int f<S&>(S&)"},
{"_Z1fIJR1SS0_EEiDpOT_", "int f<S&, S>(S&, S&&)"},
{"___Z3foo_block_invoke.25", "invocation function for block in foo"},
};
const unsigned N = sizeof(cases) / sizeof(cases[0]);

View File

@ -4924,6 +4924,8 @@ Node *Db::parse() {
bool RequireNumber = consumeIf('_');
if (parseNumber().empty() && RequireNumber)
return nullptr;
if (look() == '.')
First = Last;
if (numLeft() != 0)
return nullptr;
return make<SpecialName>("invocation function for block in ", Encoding);