diff options
author | Jason Merrill <jason@redhat.com> | 2014-09-26 15:57:37 -0400 |
---|---|---|
committer | Jason Merrill <jason@gcc.gnu.org> | 2014-09-26 15:57:37 -0400 |
commit | 00eaaa505695d75765f570ec3e18680cc394a377 (patch) | |
tree | f0ac17ea8372dfc4024ad89e42ad2b268f33402f /libiberty/cp-demangle.c | |
parent | 20ee26901f9bd834fa221f751c7baa5bf07137b5 (diff) | |
download | gcc-00eaaa505695d75765f570ec3e18680cc394a377.tar.gz |
mangle.c (is_std_substitution): Check for abi_tag.
gcc/cp/
* mangle.c (is_std_substitution): Check for abi_tag.
libiberty/
* cp-demangle.c (d_substitution): Handle abi tags on abbreviation.
From-SVN: r215647
Diffstat (limited to 'libiberty/cp-demangle.c')
-rw-r--r-- | libiberty/cp-demangle.c | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/libiberty/cp-demangle.c b/libiberty/cp-demangle.c index 4ecdb1ee439..77c2cee9d17 100644 --- a/libiberty/cp-demangle.c +++ b/libiberty/cp-demangle.c @@ -3687,6 +3687,7 @@ d_substitution (struct d_info *di, int prefix) { const char *s; int len; + struct demangle_component *c; if (p->set_last_name != NULL) di->last_name = d_make_sub (di, p->set_last_name, @@ -3702,7 +3703,15 @@ d_substitution (struct d_info *di, int prefix) len = p->simple_len; } di->expansion += len; - return d_make_sub (di, s, len); + c = d_make_sub (di, s, len); + if (d_peek_char (di) == 'B') + { + /* If there are ABI tags on the abbreviation, it becomes + a substitution candidate. */ + c = d_abi_tags (di, c); + d_add_substitution (di, c); + } + return c; } } |