diff options
author | Jason Merrill <jason@redhat.com> | 2019-02-20 13:59:18 -0500 |
---|---|---|
committer | Jason Merrill <jason@gcc.gnu.org> | 2019-02-20 13:59:18 -0500 |
commit | 60067b876326baff092554e5fb52e963a402e91b (patch) | |
tree | 2e39ac9ca78c434369f524c4904f7ba923b3ceed /gcc/cp/mangle.c | |
parent | e3fe9cfb2fe9393791c1a586fd537ffd9cbe9824 (diff) | |
download | gcc-60067b876326baff092554e5fb52e963a402e91b.zip gcc-60067b876326baff092554e5fb52e963a402e91b.tar.gz gcc-60067b876326baff092554e5fb52e963a402e91b.tar.bz2 |
PR c++/87513 - 'sorry' mangling PMF template-id.
Here build_offset_ref calls build_qualified_name to make a SCOPE_REF because
the dependent template arguments make type_dependent_expression_p (member)
true. We could probably work hard to prevent this, but it doesn't seem
necessary, and it's easy to fix write_expression to handle the result.
* mangle.c (write_expression): Handle SCOPE_REF to BASELINK.
From-SVN: r269048
Diffstat (limited to 'gcc/cp/mangle.c')
-rw-r--r-- | gcc/cp/mangle.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/gcc/cp/mangle.c b/gcc/cp/mangle.c index f550b75..777c477 100644 --- a/gcc/cp/mangle.c +++ b/gcc/cp/mangle.c @@ -3003,7 +3003,8 @@ write_expression (tree expr) { scope = TREE_OPERAND (expr, 0); member = TREE_OPERAND (expr, 1); - gcc_assert (!BASELINK_P (member)); + if (BASELINK_P (member)) + member = BASELINK_FUNCTIONS (member); } else { |