call.c (build_new_op): Strip leading REF_BIND from first operand to builtin operator.
* call.c (build_new_op): Strip leading REF_BIND from first operand to builtin operator. * decl2.c (mark_vtable_entries): Mark abort_fndecl as used when we use its RTL. From-SVN: r15023
This commit is contained in:
parent
8e69329a82
commit
7e3af3746e
3 changed files with 17 additions and 2 deletions
|
@ -1,3 +1,11 @@
|
|||
Mon Sep 1 13:19:04 1997 Jason Merrill <jason@yorick.cygnus.com>
|
||||
|
||||
* call.c (build_new_op): Strip leading REF_BIND from first operand
|
||||
to builtin operator.
|
||||
|
||||
* decl2.c (mark_vtable_entries): Mark abort_fndecl as used when we
|
||||
use its RTL.
|
||||
|
||||
Thu Aug 28 09:45:23 1997 Jason Merrill <jason@yorick.cygnus.com>
|
||||
|
||||
* call.c (null_ptr_cst_p): Remove support for (void*)0.
|
||||
|
|
|
@ -4579,6 +4579,7 @@ build_new_op (code, flags, arg1, arg2, arg3)
|
|||
tree fns, mem_arglist, arglist, fnname;
|
||||
enum tree_code code2 = NOP_EXPR;
|
||||
tree templates = NULL_TREE;
|
||||
tree conv;
|
||||
|
||||
if (arg1 == error_mark_node
|
||||
|| arg2 == error_mark_node
|
||||
|
@ -4860,8 +4861,13 @@ build_new_op (code, flags, arg1, arg2, arg3)
|
|||
}
|
||||
}
|
||||
|
||||
arg1 = convert_from_reference
|
||||
(convert_like (TREE_VEC_ELT (cand->convs, 0), arg1));
|
||||
/* We need to strip any leading REF_BIND so that bitfields don't cause
|
||||
errors. This should not remove any important conversions, because
|
||||
builtins don't apply to class objects directly. */
|
||||
conv = TREE_VEC_ELT (cand->convs, 0);
|
||||
if (TREE_CODE (conv) == REF_BIND)
|
||||
conv = TREE_OPERAND (conv, 0);
|
||||
arg1 = convert_like (conv, arg1);
|
||||
if (arg2)
|
||||
arg2 = convert_like (TREE_VEC_ELT (cand->convs, 1), arg2);
|
||||
if (arg3)
|
||||
|
|
|
@ -2343,6 +2343,7 @@ mark_vtable_entries (decl)
|
|||
{
|
||||
TREE_OPERAND (fnaddr, 0) = fn = copy_node (fn);
|
||||
DECL_RTL (fn) = DECL_RTL (abort_fndecl);
|
||||
mark_used (abort_fndecl);
|
||||
}
|
||||
if (TREE_CODE (fn) == THUNK_DECL && DECL_EXTERNAL (fn))
|
||||
{
|
||||
|
|
Loading…
Add table
Reference in a new issue