aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorNathan Sidwell <nathan@acm.org>1999-06-14 02:44:17 +0000
committerNathan Sidwell <nathan@gcc.gnu.org>1999-06-14 02:44:17 +0000
commit8be0a93054f7000a4dc7de69dd2f522e400ab2f5 (patch)
treec7caf0f292f37b34d75a8026b8d4076deb4edb9d /gcc
parentecad2425678f4e339fc860a33d08f120f82c20c0 (diff)
downloadgcc-8be0a93054f7000a4dc7de69dd2f522e400ab2f5.zip
gcc-8be0a93054f7000a4dc7de69dd2f522e400ab2f5.tar.gz
gcc-8be0a93054f7000a4dc7de69dd2f522e400ab2f5.tar.bz2
* call.c (build_new_op): Remove REF_BIND from all operands.
From-SVN: r27510
Diffstat (limited to 'gcc')
-rw-r--r--gcc/cp/ChangeLog4
-rw-r--r--gcc/cp/call.c14
2 files changed, 16 insertions, 2 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index 03f4af8..18d83d8 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,3 +1,7 @@
+1999-06-14 Nathan Sidwell <nathan@acm.org>
+
+ * call.c (build_new_op): Remove REF_BIND from all operands.
+
1999-06-13 Alexandre Oliva <oliva@dcc.unicamp.br>
* 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 e6f4187..66d98c5 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)