diff options
author | Nathan Sidwell <nathan@acm.org> | 1999-06-14 02:44:17 +0000 |
---|---|---|
committer | Nathan Sidwell <nathan@gcc.gnu.org> | 1999-06-14 02:44:17 +0000 |
commit | 8be0a93054f7000a4dc7de69dd2f522e400ab2f5 (patch) | |
tree | c7caf0f292f37b34d75a8026b8d4076deb4edb9d /gcc | |
parent | ecad2425678f4e339fc860a33d08f120f82c20c0 (diff) | |
download | gcc-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/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/cp/call.c | 14 |
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) |