diff options
author | Jason Merrill <jason@redhat.com> | 2016-11-02 01:50:29 +0000 |
---|---|---|
committer | Mark Wielaard <mark@klomp.org> | 2016-11-18 11:06:18 +0100 |
commit | ef0f5d7cc3b2082c94beffa7c9c1a8acd8eaa427 (patch) | |
tree | acf76115758d10542892bd26416076864d3c03e3 /libiberty/cp-demangle.c | |
parent | aba19b625f34fb3d61263fe8044cf0c6d8804570 (diff) | |
download | gdb-ef0f5d7cc3b2082c94beffa7c9c1a8acd8eaa427.zip gdb-ef0f5d7cc3b2082c94beffa7c9c1a8acd8eaa427.tar.gz gdb-ef0f5d7cc3b2082c94beffa7c9c1a8acd8eaa427.tar.bz2 |
Implement P0136R1, Rewording inheriting constructors.
libiberty/
* cp-demangle.c (d_ctor_dtor_name): Handle inheriting constructor.
Diffstat (limited to 'libiberty/cp-demangle.c')
-rw-r--r-- | libiberty/cp-demangle.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/libiberty/cp-demangle.c b/libiberty/cp-demangle.c index a843dc3..46382cc 100644 --- a/libiberty/cp-demangle.c +++ b/libiberty/cp-demangle.c @@ -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); } |