From 8be0a93054f7000a4dc7de69dd2f522e400ab2f5 Mon Sep 17 00:00:00 2001 From: Nathan Sidwell Date: Mon, 14 Jun 1999 02:44:17 +0000 Subject: [PATCH] * call.c (build_new_op): Remove REF_BIND from all operands. From-SVN: r27510 --- gcc/cp/ChangeLog | 4 ++++ gcc/cp/call.c | 14 ++++++++++++-- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 03f4af820d7f..18d83d8f1523 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,7 @@ +1999-06-14 Nathan Sidwell + + * call.c (build_new_op): Remove REF_BIND from all operands. + 1999-06-13 Alexandre Oliva * init.c (build_new_1): Look up operator delete even if there was diff --git a/gcc/cp/call.c b/gcc/cp/call.c index e6f418756447..66d98c562d08 100644 --- a/gcc/cp/call.c +++ b/gcc/cp/call.c @@ -2655,9 +2655,19 @@ build_new_op (code, flags, arg1, arg2, arg3) conv = TREE_OPERAND (conv, 0); arg1 = convert_like (conv, arg1); if (arg2) - arg2 = convert_like (TREE_VEC_ELT (cand->convs, 1), arg2); + { + conv = TREE_VEC_ELT (cand->convs, 1); + if (TREE_CODE (conv) == REF_BIND) + conv = TREE_OPERAND (conv, 0); + arg2 = convert_like (conv, arg2); + } if (arg3) - arg3 = convert_like (TREE_VEC_ELT (cand->convs, 2), arg3); + { + conv = TREE_VEC_ELT (cand->convs, 2); + if (TREE_CODE (conv) == REF_BIND) + conv = TREE_OPERAND (conv, 0); + arg3 = convert_like (conv, arg3); + } builtin: switch (code) -- 2.47.2