merge from gcc
This commit is contained in:
parent
623bd5b7fd
commit
f9fb0b2d9f
3 changed files with 36 additions and 0 deletions
|
@ -1,3 +1,10 @@
|
|||
2011-10-10 Ian Lance Taylor <iant@google.com>
|
||||
|
||||
PR c++/48665
|
||||
* cp-demangle.c (d_cv_qualifiers): If qualifiers are applied to a
|
||||
function type, change them to apply to the "this" parameter.
|
||||
* testsuite/demangle-expected: Add test case.
|
||||
|
||||
2011-09-28 Doug Evans <dje@google.com>
|
||||
|
||||
* timeval-utils.c: New file.
|
||||
|
|
|
@ -2294,8 +2294,10 @@ static struct demangle_component **
|
|||
d_cv_qualifiers (struct d_info *di,
|
||||
struct demangle_component **pret, int member_fn)
|
||||
{
|
||||
struct demangle_component **pstart;
|
||||
char peek;
|
||||
|
||||
pstart = pret;
|
||||
peek = d_peek_char (di);
|
||||
while (peek == 'r' || peek == 'V' || peek == 'K')
|
||||
{
|
||||
|
@ -2332,6 +2334,28 @@ d_cv_qualifiers (struct d_info *di,
|
|||
peek = d_peek_char (di);
|
||||
}
|
||||
|
||||
if (!member_fn && peek == 'F')
|
||||
{
|
||||
while (pstart != pret)
|
||||
{
|
||||
switch ((*pstart)->type)
|
||||
{
|
||||
case DEMANGLE_COMPONENT_RESTRICT:
|
||||
(*pstart)->type = DEMANGLE_COMPONENT_RESTRICT_THIS;
|
||||
break;
|
||||
case DEMANGLE_COMPONENT_VOLATILE:
|
||||
(*pstart)->type = DEMANGLE_COMPONENT_VOLATILE_THIS;
|
||||
break;
|
||||
case DEMANGLE_COMPONENT_CONST:
|
||||
(*pstart)->type = DEMANGLE_COMPONENT_CONST_THIS;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
pstart = &d_left (*pstart);
|
||||
}
|
||||
}
|
||||
|
||||
return pret;
|
||||
}
|
||||
|
||||
|
|
|
@ -4198,3 +4198,8 @@ f1<int>
|
|||
_Z3fooi._omp_cpyfn.6
|
||||
foo(int) [clone ._omp_cpyfn.6]
|
||||
foo
|
||||
#
|
||||
--format=gnu-v3 --no-params
|
||||
_Z1fIKFvvES0_Evv
|
||||
void f<void () const, void ()>()
|
||||
f<void () const, void ()>
|
||||
|
|
Loading…
Reference in a new issue