Commit 036b5ad1 by Nathan Sidwell Committed by Nathan Sidwell

[C++ PATCH] cleanup 2

https://gcc.gnu.org/ml/gcc-patches/2018-04/msg01231.html
	* typeck.c (convert_ptrmem): Move local var decls to initialization.

From-SVN: r259710
parent 3db18011
2018-04-27 Nathan Sidwell <nathan@acm.org>
* typeck.c (convert_ptrmem): Move local var decls to initialization.
* cp-tree.h (TEMPLATE_INFO): Fix comments.
(TI_PENDING_TEMPLATE_FLAG): Check TEMPLATE_INFO.
(NON_DEFAULT_TEMPLATE_ARG_COUNT): Wrap line.
......
......@@ -6833,34 +6833,28 @@ convert_ptrmem (tree type, tree expr, bool allow_inverse_p,
if (TYPE_PTRDATAMEM_P (type))
{
tree delta;
tree delta = (get_delta_difference
(TYPE_PTRMEM_CLASS_TYPE (TREE_TYPE (expr)),
TYPE_PTRMEM_CLASS_TYPE (type),
allow_inverse_p, c_cast_p, complain));
delta = get_delta_difference (TYPE_PTRMEM_CLASS_TYPE (TREE_TYPE (expr)),
TYPE_PTRMEM_CLASS_TYPE (type),
allow_inverse_p,
c_cast_p, complain);
if (delta == error_mark_node)
return error_mark_node;
if (!integer_zerop (delta))
{
tree cond, op1, op2;
if (TREE_CODE (expr) == PTRMEM_CST)
expr = cplus_expand_constant (expr);
cond = cp_build_binary_op (input_location,
EQ_EXPR,
expr,
build_int_cst (TREE_TYPE (expr), -1),
complain);
op1 = build_nop (ptrdiff_type_node, expr);
op2 = cp_build_binary_op (input_location,
PLUS_EXPR, op1, delta,
complain);
tree cond = cp_build_binary_op (input_location, EQ_EXPR, expr,
build_int_cst (TREE_TYPE (expr), -1),
complain);
tree op1 = build_nop (ptrdiff_type_node, expr);
tree op2 = cp_build_binary_op (input_location, PLUS_EXPR, op1, delta,
complain);
expr = fold_build3_loc (input_location,
COND_EXPR, ptrdiff_type_node, cond, op1, op2);
COND_EXPR, ptrdiff_type_node, cond, op1, op2);
}
return build_nop (type, expr);
......
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