Implement P0136R1, Rewording inheriting constructors.

libiberty/
	* cp-demangle.c (d_ctor_dtor_name): Handle inheriting constructor.
This commit is contained in:
Jason Merrill 2016-11-02 01:50:29 +00:00 committed by Mark Wielaard
parent aba19b625f
commit ef0f5d7cc3
3 changed files with 20 additions and 0 deletions

View file

@ -1,3 +1,7 @@
2016-11-01 Jason Merrill <jason@redhat.com>
* cp-demangle.c (d_ctor_dtor_name): Handle inheriting constructor.
2016-10-31 Mark Wielaard <mjw@redhat.com>
* cplus-dem.c (ada_demangle): Initialize demangled to NULL and

View file

@ -2168,6 +2168,13 @@ d_ctor_dtor_name (struct d_info *di)
case 'C':
{
enum gnu_v3_ctor_kinds kind;
int inheriting = 0;
if (d_peek_next_char (di) == 'I')
{
inheriting = 1;
d_advance (di, 1);
}
switch (d_peek_next_char (di))
{
@ -2189,7 +2196,12 @@ d_ctor_dtor_name (struct d_info *di)
default:
return NULL;
}
d_advance (di, 2);
if (inheriting)
cplus_demangle_type (di);
return d_make_ctor (di, kind, di->last_name);
}

View file

@ -4592,3 +4592,7 @@ __t2m05B500000000000000000_
__10%0__S4_0T0T0
%0<>::%0(%0<>)
# Inheriting constructor
_ZN1DCI11BEi
D::B(int)