[itanium demangler] Support dot suffixes on block invocation functions
rdar://32378759 llvm-svn: 338747
This commit is contained in:
parent
af3367d2ff
commit
90dc82e955
|
@ -4935,6 +4935,8 @@ Node *Db::parse() {
|
||||||
bool RequireNumber = consumeIf('_');
|
bool RequireNumber = consumeIf('_');
|
||||||
if (parseNumber().empty() && RequireNumber)
|
if (parseNumber().empty() && RequireNumber)
|
||||||
return nullptr;
|
return nullptr;
|
||||||
|
if (look() == '.')
|
||||||
|
First = Last;
|
||||||
if (numLeft() != 0)
|
if (numLeft() != 0)
|
||||||
return nullptr;
|
return nullptr;
|
||||||
return make<SpecialName>("invocation function for block in ", Encoding);
|
return make<SpecialName>("invocation function for block in ", Encoding);
|
||||||
|
|
|
@ -29753,6 +29753,8 @@ const char* cases[][2] =
|
||||||
// reference collapsing:
|
// reference collapsing:
|
||||||
{"_Z1fIR1SEiOT_", "int f<S&>(S&)"},
|
{"_Z1fIR1SEiOT_", "int f<S&>(S&)"},
|
||||||
{"_Z1fIJR1SS0_EEiDpOT_", "int f<S&, S>(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]);
|
const unsigned N = sizeof(cases) / sizeof(cases[0]);
|
||||||
|
|
|
@ -4924,6 +4924,8 @@ Node *Db::parse() {
|
||||||
bool RequireNumber = consumeIf('_');
|
bool RequireNumber = consumeIf('_');
|
||||||
if (parseNumber().empty() && RequireNumber)
|
if (parseNumber().empty() && RequireNumber)
|
||||||
return nullptr;
|
return nullptr;
|
||||||
|
if (look() == '.')
|
||||||
|
First = Last;
|
||||||
if (numLeft() != 0)
|
if (numLeft() != 0)
|
||||||
return nullptr;
|
return nullptr;
|
||||||
return make<SpecialName>("invocation function for block in ", Encoding);
|
return make<SpecialName>("invocation function for block in ", Encoding);
|
||||||
|
|
Loading…
Reference in New Issue