Commit 4d20f490 by Jason Merrill Committed by Jason Merrill

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
parent 94b2a1e5
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.
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)
{
tree name;
tree fn;
switch (dtor_kind)
{
case sfk_complete_destructor:
......@@ -4554,13 +4553,12 @@ build_dtor_call (tree exp, special_function_kind dtor_kind, int flags,
default:
gcc_unreachable ();
}
fn = lookup_fnfields (TREE_TYPE (exp), name, /*protect=*/2);
return build_new_method_call (exp, fn,
/*args=*/NULL,
/*conversion_path=*/NULL_TREE,
flags,
/*fn_p=*/NULL,
complain);
return build_special_member_call (exp, name,
/*args=*/NULL,
/*binfo=*/TREE_TYPE (exp),
flags,
complain);
}
/* 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. */
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);
if (addr == 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);
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment