mirror of git://gcc.gnu.org/git/gcc.git
init.c (build_dtor_call): Use build_special_member_call.
* init.c (build_dtor_call): Use build_special_member_call. (build_delete): Remove redundant uses of save_addr. From-SVN: r259771
This commit is contained in:
parent
94b2a1e543
commit
4d20f49036
|
|
@ -1,5 +1,8 @@
|
||||||
2018-04-30 Jason Merrill <jason@redhat.com>
|
2018-04-30 Jason Merrill <jason@redhat.com>
|
||||||
|
|
||||||
|
* init.c (build_dtor_call): Use build_special_member_call.
|
||||||
|
(build_delete): Remove redundant uses of save_addr.
|
||||||
|
|
||||||
* decl.c (build_clobber_this): Use build_clobber.
|
* decl.c (build_clobber_this): Use build_clobber.
|
||||||
|
|
||||||
2018-04-27 Jakub Jelinek <jakub@redhat.com>
|
2018-04-27 Jakub Jelinek <jakub@redhat.com>
|
||||||
|
|
|
||||||
|
|
@ -4536,7 +4536,6 @@ build_dtor_call (tree exp, special_function_kind dtor_kind, int flags,
|
||||||
tsubst_flags_t complain)
|
tsubst_flags_t complain)
|
||||||
{
|
{
|
||||||
tree name;
|
tree name;
|
||||||
tree fn;
|
|
||||||
switch (dtor_kind)
|
switch (dtor_kind)
|
||||||
{
|
{
|
||||||
case sfk_complete_destructor:
|
case sfk_complete_destructor:
|
||||||
|
|
@ -4554,13 +4553,12 @@ build_dtor_call (tree exp, special_function_kind dtor_kind, int flags,
|
||||||
default:
|
default:
|
||||||
gcc_unreachable ();
|
gcc_unreachable ();
|
||||||
}
|
}
|
||||||
fn = lookup_fnfields (TREE_TYPE (exp), name, /*protect=*/2);
|
|
||||||
return build_new_method_call (exp, fn,
|
return build_special_member_call (exp, name,
|
||||||
/*args=*/NULL,
|
/*args=*/NULL,
|
||||||
/*conversion_path=*/NULL_TREE,
|
/*binfo=*/TREE_TYPE (exp),
|
||||||
flags,
|
flags,
|
||||||
/*fn_p=*/NULL,
|
complain);
|
||||||
complain);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Generate a call to a destructor. TYPE is the type to cast ADDR to.
|
/* Generate a call to a destructor. TYPE is the type to cast ADDR to.
|
||||||
|
|
@ -4650,8 +4648,6 @@ build_delete (tree otype, tree addr, special_function_kind auto_delete,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (TREE_SIDE_EFFECTS (addr))
|
|
||||||
addr = save_expr (addr);
|
|
||||||
|
|
||||||
/* Throw away const and volatile on target type of addr. */
|
/* Throw away const and volatile on target type of addr. */
|
||||||
addr = convert_force (build_pointer_type (type), addr, 0, complain);
|
addr = convert_force (build_pointer_type (type), addr, 0, complain);
|
||||||
|
|
@ -4664,8 +4660,6 @@ build_delete (tree otype, tree addr, special_function_kind auto_delete,
|
||||||
addr = cp_build_addr_expr (addr, complain);
|
addr = cp_build_addr_expr (addr, complain);
|
||||||
if (addr == error_mark_node)
|
if (addr == error_mark_node)
|
||||||
return error_mark_node;
|
return error_mark_node;
|
||||||
if (TREE_SIDE_EFFECTS (addr))
|
|
||||||
addr = save_expr (addr);
|
|
||||||
|
|
||||||
addr = convert_force (build_pointer_type (type), addr, 0, complain);
|
addr = convert_force (build_pointer_type (type), addr, 0, complain);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue