aboutsummaryrefslogtreecommitdiff
path: root/gcc/cp/mangle.c
diff options
context:
space:
mode:
authorJason Merrill <jason@redhat.com>2019-02-20 13:59:18 -0500
committerJason Merrill <jason@gcc.gnu.org>2019-02-20 13:59:18 -0500
commit60067b876326baff092554e5fb52e963a402e91b (patch)
tree2e39ac9ca78c434369f524c4904f7ba923b3ceed /gcc/cp/mangle.c
parente3fe9cfb2fe9393791c1a586fd537ffd9cbe9824 (diff)
downloadgcc-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.c3
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
{