Commit 337c90cc by Mark Mitchell Committed by Mark Mitchell

cp-tree.h (build_binary_op): Remove unneeded parameter.

	* cp-tree.h (build_binary_op): Remove unneeded parameter.
	* class.c (build_vrable_entry_ref): Adjust call to
	build_binary_op.
	* decl.c (expand_static_init): Likewise.
	(grokdeclarator): Likewise.
	(finish_function): Likewise.
	* decl2.c (delete_sanity): Likewise.
	(do_dtors): Likewise.
	(do_ctors): Likewise.
	* error.c (dump_type_suffix): Likewise.
	* expr.c (cplus_expand_expr): Likewise.
	* init.c (resolve_offset_ref): Likewise.
	(build_new): Likewise.
	(build_new_1): Likewise.
	(build_vec_delete_1): Likewise.
	(expand_vec_init_catch_clause): Likewise.
	(build_delete): Likewise.
	* pt.c (tsubst): Likewise.
	* rtti.c (synthesize_tinfo_fn): Likewise.
	* search.c (expand_upcast_fixups): Likewise.
	(expand_direct_vtbls_init): Likewise.
	* typeck.c (get_member_function_from_ptrfunc): Likewise.
	(build_binary_op_nodefault): Likewise.
	(point_int_sum): Likewise.
	(pointer_diff): Likewise.
	(build_unary_op): Likewise.
	(build_modify_expr): Likewise.
	(get_delta_difference): Likewise.
	(build_ptrmemfunc): Likewise.
	(expand_ptrmemfunc_cst): Likewise.

From-SVN: r26566
parent 37679e06
1999-04-20 Mark Mitchell <mark@codesourcery.com>
* cp-tree.h (build_binary_op): Remove unneeded parameter.
* class.c (build_vrable_entry_ref): Adjust call to
build_binary_op.
* decl.c (expand_static_init): Likewise.
(grokdeclarator): Likewise.
(finish_function): Likewise.
* decl2.c (delete_sanity): Likewise.
(do_dtors): Likewise.
(do_ctors): Likewise.
* error.c (dump_type_suffix): Likewise.
* expr.c (cplus_expand_expr): Likewise.
* init.c (resolve_offset_ref): Likewise.
(build_new): Likewise.
(build_new_1): Likewise.
(build_vec_delete_1): Likewise.
(expand_vec_init_catch_clause): Likewise.
(build_delete): Likewise.
* pt.c (tsubst): Likewise.
* rtti.c (synthesize_tinfo_fn): Likewise.
* search.c (expand_upcast_fixups): Likewise.
(expand_direct_vtbls_init): Likewise.
* typeck.c (get_member_function_from_ptrfunc): Likewise.
(build_binary_op_nodefault): Likewise.
(point_int_sum): Likewise.
(pointer_diff): Likewise.
(build_unary_op): Likewise.
(build_modify_expr): Likewise.
(get_delta_difference): Likewise.
(build_ptrmemfunc): Likewise.
(expand_ptrmemfunc_cst): Likewise.
1999-04-20 Jason Merrill <jason@yorick.cygnus.com> 1999-04-20 Jason Merrill <jason@yorick.cygnus.com>
* decl.c (grokfndecl): Always call cplus_decl_attributes. * decl.c (grokfndecl): Always call cplus_decl_attributes.
......
...@@ -489,7 +489,7 @@ build_vtable_entry_ref (basetype, vtbl, idx) ...@@ -489,7 +489,7 @@ build_vtable_entry_ref (basetype, vtbl, idx)
i = build_c_cast (ptrdiff_type_node, build_unary_op (ADDR_EXPR, i, 0)); i = build_c_cast (ptrdiff_type_node, build_unary_op (ADDR_EXPR, i, 0));
i2 = build_array_ref (vtbl, build_int_2(0,0)); i2 = build_array_ref (vtbl, build_int_2(0,0));
i2 = build_c_cast (ptrdiff_type_node, build_unary_op (ADDR_EXPR, i2, 0)); i2 = build_c_cast (ptrdiff_type_node, build_unary_op (ADDR_EXPR, i2, 0));
i = build_binary_op (MINUS_EXPR, i, i2, 0); i = build_binary_op (MINUS_EXPR, i, i2);
i = build_tree_list (build_string (1, "i"), i); i = build_tree_list (build_string (1, "i"), i);
expand_asm_operands (build_string (sizeof(asm_stmt)-1, asm_stmt), expand_asm_operands (build_string (sizeof(asm_stmt)-1, asm_stmt),
......
...@@ -3425,7 +3425,7 @@ extern tree build_function_call PROTO((tree, tree)); ...@@ -3425,7 +3425,7 @@ extern tree build_function_call PROTO((tree, tree));
extern tree build_function_call_maybe PROTO((tree, tree)); extern tree build_function_call_maybe PROTO((tree, tree));
extern tree convert_arguments PROTO((tree, tree, tree, int)); extern tree convert_arguments PROTO((tree, tree, tree, int));
extern tree build_x_binary_op PROTO((enum tree_code, tree, tree)); extern tree build_x_binary_op PROTO((enum tree_code, tree, tree));
extern tree build_binary_op PROTO((enum tree_code, tree, tree, int)); extern tree build_binary_op PROTO((enum tree_code, tree, tree));
extern tree build_binary_op_nodefault PROTO((enum tree_code, tree, tree, enum tree_code)); extern tree build_binary_op_nodefault PROTO((enum tree_code, tree, tree, enum tree_code));
extern tree build_component_addr PROTO((tree, tree, const char *)); extern tree build_component_addr PROTO((tree, tree, const char *));
extern tree build_x_unary_op PROTO((enum tree_code, tree)); extern tree build_x_unary_op PROTO((enum tree_code, tree));
......
...@@ -8303,7 +8303,7 @@ expand_static_init (decl, init) ...@@ -8303,7 +8303,7 @@ expand_static_init (decl, init)
/* Begin the conditional initialization. */ /* Begin the conditional initialization. */
expand_start_cond (build_binary_op (EQ_EXPR, temp, expand_start_cond (build_binary_op (EQ_EXPR, temp,
integer_zero_node, 1), 0); integer_zero_node), 0);
expand_start_target_temps (); expand_start_target_temps ();
/* Do the initialization itself. */ /* Do the initialization itself. */
...@@ -10225,7 +10225,7 @@ grokdeclarator (declarator, declspecs, decl_context, initialized, attrlist) ...@@ -10225,7 +10225,7 @@ grokdeclarator (declarator, declspecs, decl_context, initialized, attrlist)
= fold (build_binary_op (MINUS_EXPR, = fold (build_binary_op (MINUS_EXPR,
cp_convert (index_type, size), cp_convert (index_type, size),
cp_convert (index_type, cp_convert (index_type,
integer_one_node), 1)); integer_one_node)));
if (! TREE_CONSTANT (itype)) if (! TREE_CONSTANT (itype))
itype = variable_size (itype); itype = variable_size (itype);
else if (TREE_OVERFLOW (itype)) else if (TREE_OVERFLOW (itype))
...@@ -13973,7 +13973,7 @@ finish_function (lineno, flags, nested) ...@@ -13973,7 +13973,7 @@ finish_function (lineno, flags, nested)
if (! ok_to_optimize_dtor) if (! ok_to_optimize_dtor)
{ {
cond = build_binary_op (NE_EXPR, cond = build_binary_op (NE_EXPR,
current_class_ptr, integer_zero_node, 1); current_class_ptr, integer_zero_node);
expand_start_cond (cond, 0); expand_start_cond (cond, 0);
} }
...@@ -14033,7 +14033,7 @@ finish_function (lineno, flags, nested) ...@@ -14033,7 +14033,7 @@ finish_function (lineno, flags, nested)
if (flag_this_is_variable > 0) if (flag_this_is_variable > 0)
{ {
cond = build_binary_op (EQ_EXPR, cond = build_binary_op (EQ_EXPR,
current_class_ptr, integer_zero_node, 1); current_class_ptr, integer_zero_node);
thenclause = build_modify_expr (current_class_ptr, NOP_EXPR, thenclause = build_modify_expr (current_class_ptr, NOP_EXPR,
build_new (NULL_TREE, current_class_type, void_type_node, 0)); build_new (NULL_TREE, current_class_type, void_type_node, 0));
} }
......
...@@ -1176,7 +1176,7 @@ delete_sanity (exp, size, doing_vec, use_global_delete) ...@@ -1176,7 +1176,7 @@ delete_sanity (exp, size, doing_vec, use_global_delete)
if (doing_vec == 2) if (doing_vec == 2)
{ {
maxindex = build_binary_op (MINUS_EXPR, size, integer_one_node, 1); maxindex = build_binary_op (MINUS_EXPR, size, integer_one_node);
pedwarn ("anachronistic use of array size in vector delete"); pedwarn ("anachronistic use of array size in vector delete");
} }
...@@ -3176,7 +3176,7 @@ do_dtors (start) ...@@ -3176,7 +3176,7 @@ do_dtors (start)
{ {
tree sentry = get_sentry (DECL_ASSEMBLER_NAME (decl)); tree sentry = get_sentry (DECL_ASSEMBLER_NAME (decl));
sentry = build_unary_op (PREDECREMENT_EXPR, sentry, 0); sentry = build_unary_op (PREDECREMENT_EXPR, sentry, 0);
sentry = build_binary_op (EQ_EXPR, sentry, integer_zero_node, 1); sentry = build_binary_op (EQ_EXPR, sentry, integer_zero_node);
expand_start_cond (sentry, 0); expand_start_cond (sentry, 0);
} }
...@@ -3255,7 +3255,7 @@ do_ctors (start) ...@@ -3255,7 +3255,7 @@ do_ctors (start)
tree sentry = get_sentry (DECL_ASSEMBLER_NAME (decl)); tree sentry = get_sentry (DECL_ASSEMBLER_NAME (decl));
sentry = build_unary_op (PREINCREMENT_EXPR, sentry, 0); sentry = build_unary_op (PREINCREMENT_EXPR, sentry, 0);
sentry = build_binary_op sentry = build_binary_op
(EQ_EXPR, sentry, integer_one_node, 1); (EQ_EXPR, sentry, integer_one_node);
expand_start_cond (sentry, 0); expand_start_cond (sentry, 0);
} }
......
...@@ -579,7 +579,7 @@ dump_type_suffix (t, v, canonical_name) ...@@ -579,7 +579,7 @@ dump_type_suffix (t, v, canonical_name)
else else
dump_expr (fold (build_binary_op dump_expr (fold (build_binary_op
(PLUS_EXPR, TYPE_MAX_VALUE (TYPE_DOMAIN (t)), (PLUS_EXPR, TYPE_MAX_VALUE (TYPE_DOMAIN (t)),
integer_one_node, 1)), 0); integer_one_node)), 0);
} }
OB_PUTC (']'); OB_PUTC (']');
dump_type_suffix (TREE_TYPE (t), v, canonical_name); dump_type_suffix (TREE_TYPE (t), v, canonical_name);
......
...@@ -219,7 +219,7 @@ cplus_expand_expr (exp, target, tmode, modifier) ...@@ -219,7 +219,7 @@ cplus_expand_expr (exp, target, tmode, modifier)
(expand_vec_init (expand_vec_init
(NULL_TREE, TREE_OPERAND (exp, 0), (NULL_TREE, TREE_OPERAND (exp, 0),
build_binary_op (MINUS_EXPR, TREE_OPERAND (exp, 2), build_binary_op (MINUS_EXPR, TREE_OPERAND (exp, 2),
integer_one_node, 1), integer_one_node),
TREE_OPERAND (exp, 1), 0), target, tmode, modifier); TREE_OPERAND (exp, 1), 0), target, tmode, modifier);
case NEW_EXPR: case NEW_EXPR:
......
...@@ -1793,8 +1793,7 @@ resolve_offset_ref (exp) ...@@ -1793,8 +1793,7 @@ resolve_offset_ref (exp)
pointer with a real value of 0 is distinguishable from an pointer with a real value of 0 is distinguishable from an
offset of the first member of a structure. */ offset of the first member of a structure. */
member = build_binary_op (MINUS_EXPR, member, member = build_binary_op (MINUS_EXPR, member,
cp_convert (ptrdiff_type_node, integer_one_node), cp_convert (ptrdiff_type_node, integer_one_node));
0);
return build1 (INDIRECT_REF, type, return build1 (INDIRECT_REF, type,
build (PLUS_EXPR, build_pointer_type (type), build (PLUS_EXPR, build_pointer_type (type),
...@@ -1945,7 +1944,7 @@ build_new (placement, decl, init, use_global_new) ...@@ -1945,7 +1944,7 @@ build_new (placement, decl, init, use_global_new)
nelts = integer_zero_node; nelts = integer_zero_node;
} }
else else
nelts = build_binary_op (MULT_EXPR, nelts, this_nelts, 1); nelts = build_binary_op (MULT_EXPR, nelts, this_nelts);
} }
} }
else else
...@@ -2134,7 +2133,7 @@ build_new_1 (exp) ...@@ -2134,7 +2133,7 @@ build_new_1 (exp)
while (TREE_CODE (true_type) == ARRAY_TYPE) while (TREE_CODE (true_type) == ARRAY_TYPE)
{ {
tree this_nelts = array_type_nelts_top (true_type); tree this_nelts = array_type_nelts_top (true_type);
nelts = build_binary_op (MULT_EXPR, nelts, this_nelts, 1); nelts = build_binary_op (MULT_EXPR, nelts, this_nelts);
true_type = TREE_TYPE (true_type); true_type = TREE_TYPE (true_type);
} }
...@@ -2143,7 +2142,7 @@ build_new_1 (exp) ...@@ -2143,7 +2142,7 @@ build_new_1 (exp)
if (has_array) if (has_array)
size = fold (build_binary_op (MULT_EXPR, size_in_bytes (true_type), size = fold (build_binary_op (MULT_EXPR, size_in_bytes (true_type),
nelts, 1)); nelts));
else else
size = size_in_bytes (type); size = size_in_bytes (type);
...@@ -2285,7 +2284,7 @@ build_new_1 (exp) ...@@ -2285,7 +2284,7 @@ build_new_1 (exp)
tree extra = BI_header_size; tree extra = BI_header_size;
tree cookie, exp1; tree cookie, exp1;
rval = convert (string_type_node, rval); /* for ptr arithmetic */ rval = convert (string_type_node, rval); /* for ptr arithmetic */
rval = save_expr (build_binary_op (PLUS_EXPR, rval, extra, 1)); rval = save_expr (build_binary_op (PLUS_EXPR, rval, extra));
/* Store header info. */ /* Store header info. */
cookie = build_indirect_ref (build (MINUS_EXPR, cookie = build_indirect_ref (build (MINUS_EXPR,
build_pointer_type (BI_header_type), build_pointer_type (BI_header_type),
...@@ -2471,7 +2470,7 @@ build_new_1 (exp) ...@@ -2471,7 +2470,7 @@ build_new_1 (exp)
{ {
/* Did we modify the storage? */ /* Did we modify the storage? */
tree ifexp = build_binary_op (NE_EXPR, alloc_node, tree ifexp = build_binary_op (NE_EXPR, alloc_node,
integer_zero_node, 1); integer_zero_node);
rval = build_conditional_expr (ifexp, rval, alloc_node); rval = build_conditional_expr (ifexp, rval, alloc_node);
} }
...@@ -2541,8 +2540,7 @@ build_vec_delete_1 (base, maxindex, type, auto_delete_vec, auto_delete, ...@@ -2541,8 +2540,7 @@ build_vec_delete_1 (base, maxindex, type, auto_delete_vec, auto_delete,
tree base_tbd = cp_convert (ptype, tree base_tbd = cp_convert (ptype,
build_binary_op (MINUS_EXPR, build_binary_op (MINUS_EXPR,
cp_convert (ptr_type_node, base), cp_convert (ptr_type_node, base),
BI_header_size, BI_header_size));
1));
/* This is the real size */ /* This is the real size */
virtual_size = size_binop (PLUS_EXPR, virtual_size, BI_header_size); virtual_size = size_binop (PLUS_EXPR, virtual_size, BI_header_size);
body = build_expr_list (NULL_TREE, body = build_expr_list (NULL_TREE,
...@@ -2597,8 +2595,7 @@ build_vec_delete_1 (base, maxindex, type, auto_delete_vec, auto_delete, ...@@ -2597,8 +2595,7 @@ build_vec_delete_1 (base, maxindex, type, auto_delete_vec, auto_delete,
base_tbd = cp_convert (ptype, base_tbd = cp_convert (ptype,
build_binary_op (MINUS_EXPR, build_binary_op (MINUS_EXPR,
cp_convert (string_type_node, base), cp_convert (string_type_node, base),
BI_header_size, BI_header_size));
1));
/* True size with header. */ /* True size with header. */
virtual_size = size_binop (PLUS_EXPR, virtual_size, BI_header_size); virtual_size = size_binop (PLUS_EXPR, virtual_size, BI_header_size);
} }
...@@ -2697,7 +2694,7 @@ expand_vec_init_catch_clause (rval, type, maxindex, iterator) ...@@ -2697,7 +2694,7 @@ expand_vec_init_catch_clause (rval, type, maxindex, iterator)
e = build_vec_delete_1 (rval, e = build_vec_delete_1 (rval,
build_binary_op (MINUS_EXPR, maxindex, build_binary_op (MINUS_EXPR, maxindex,
iterator, 1), iterator),
type, type,
/*auto_delete_vec=*/integer_zero_node, /*auto_delete_vec=*/integer_zero_node,
/*auto_delete=*/integer_zero_node, /*auto_delete=*/integer_zero_node,
...@@ -3091,7 +3088,7 @@ build_delete (type, addr, auto_delete, flags, use_global_delete) ...@@ -3091,7 +3088,7 @@ build_delete (type, addr, auto_delete, flags, use_global_delete)
ifexp = integer_one_node; ifexp = integer_one_node;
else else
/* Handle deleting a null pointer. */ /* Handle deleting a null pointer. */
ifexp = fold (build_binary_op (NE_EXPR, addr, integer_zero_node, 1)); ifexp = fold (build_binary_op (NE_EXPR, addr, integer_zero_node));
if (ifexp != integer_one_node) if (ifexp != integer_one_node)
expr = build (COND_EXPR, void_type_node, expr = build (COND_EXPR, void_type_node,
......
...@@ -6136,7 +6136,7 @@ tsubst (t, args, complain, in_decl) ...@@ -6136,7 +6136,7 @@ tsubst (t, args, complain, in_decl)
return error_mark_node; return error_mark_node;
} }
max = fold (build_binary_op (MINUS_EXPR, max, integer_one_node, 1)); max = fold (build_binary_op (MINUS_EXPR, max, integer_one_node));
if (!TREE_PERMANENT (max) && !allocation_temporary_p ()) if (!TREE_PERMANENT (max) && !allocation_temporary_p ())
max = copy_to_permanent (max); max = copy_to_permanent (max);
return build_index_type (max); return build_index_type (max);
......
...@@ -1129,7 +1129,7 @@ synthesize_tinfo_fn (fndecl) ...@@ -1129,7 +1129,7 @@ synthesize_tinfo_fn (fndecl)
addr = decay_conversion (tdecl); addr = decay_conversion (tdecl);
tmp = cp_convert (build_pointer_type (ptr_type_node), addr); tmp = cp_convert (build_pointer_type (ptr_type_node), addr);
tmp = build_indirect_ref (tmp, 0); tmp = build_indirect_ref (tmp, 0);
tmp = build_binary_op (EQ_EXPR, tmp, integer_zero_node, 1); tmp = build_binary_op (EQ_EXPR, tmp, integer_zero_node);
expand_start_cond (tmp, 0); expand_start_cond (tmp, 0);
if (TREE_CODE (type) == FUNCTION_TYPE) if (TREE_CODE (type) == FUNCTION_TYPE)
......
...@@ -2527,7 +2527,7 @@ expand_upcast_fixups (binfo, addr, orig_addr, vbase, vbase_addr, t, ...@@ -2527,7 +2527,7 @@ expand_upcast_fixups (binfo, addr, orig_addr, vbase, vbase_addr, t,
/* This is a upcast, so we have to add the offset for the /* This is a upcast, so we have to add the offset for the
virtual base. */ virtual base. */
old_delta = build_binary_op (PLUS_EXPR, old_delta, old_delta = build_binary_op (PLUS_EXPR, old_delta,
TREE_VALUE (delta), 0); TREE_VALUE (delta));
if (vc) if (vc)
{ {
/* If this is set, we need to subtract out the delta /* If this is set, we need to subtract out the delta
...@@ -2548,7 +2548,7 @@ expand_upcast_fixups (binfo, addr, orig_addr, vbase, vbase_addr, t, ...@@ -2548,7 +2548,7 @@ expand_upcast_fixups (binfo, addr, orig_addr, vbase, vbase_addr, t,
/* This is a downcast, so we have to subtract the offset /* This is a downcast, so we have to subtract the offset
for the virtual base. */ for the virtual base. */
old_delta = build_binary_op (MINUS_EXPR, old_delta, vc_delta, 0); old_delta = build_binary_op (MINUS_EXPR, old_delta, vc_delta);
} }
TREE_READONLY (new_delta) = 0; TREE_READONLY (new_delta) = 0;
...@@ -2690,7 +2690,7 @@ expand_indirect_vtbls_init (binfo, true_exp, decl_ptr) ...@@ -2690,7 +2690,7 @@ expand_indirect_vtbls_init (binfo, true_exp, decl_ptr)
warning ("recoverable internal compiler error, nobody's in charge!"); warning ("recoverable internal compiler error, nobody's in charge!");
in_charge_node = integer_zero_node; in_charge_node = integer_zero_node;
} }
in_charge_node = build_binary_op (EQ_EXPR, in_charge_node, integer_zero_node, 1); in_charge_node = build_binary_op (EQ_EXPR, in_charge_node, integer_zero_node);
expand_start_cond (in_charge_node, 0); expand_start_cond (in_charge_node, 0);
emit_insns (fixup_insns); emit_insns (fixup_insns);
expand_end_cond (); expand_end_cond ();
......
...@@ -2871,7 +2871,7 @@ get_member_function_from_ptrfunc (instance_ptrptr, function) ...@@ -2871,7 +2871,7 @@ get_member_function_from_ptrfunc (instance_ptrptr, function)
(build_component_ref (function, (build_component_ref (function,
index_identifier, index_identifier,
NULL_TREE, 0))); NULL_TREE, 0)));
e1 = build_binary_op (GT_EXPR, idx, integer_zero_node, 1); e1 = build_binary_op (GT_EXPR, idx, integer_zero_node);
/* Convert down to the right base, before using the instance. */ /* Convert down to the right base, before using the instance. */
instance = convert_pointer_to_real (basetype, instance_ptr); instance = convert_pointer_to_real (basetype, instance_ptr);
...@@ -2887,7 +2887,7 @@ get_member_function_from_ptrfunc (instance_ptrptr, function) ...@@ -2887,7 +2887,7 @@ get_member_function_from_ptrfunc (instance_ptrptr, function)
vtbl = build_indirect_ref (vtbl, NULL_PTR); vtbl = build_indirect_ref (vtbl, NULL_PTR);
aref = build_array_ref (vtbl, build_binary_op (MINUS_EXPR, aref = build_array_ref (vtbl, build_binary_op (MINUS_EXPR,
idx, idx,
integer_one_node, 1)); integer_one_node));
if (! flag_vtable_thunks) if (! flag_vtable_thunks)
{ {
aref = save_expr (aref); aref = save_expr (aref);
...@@ -2899,7 +2899,7 @@ get_member_function_from_ptrfunc (instance_ptrptr, function) ...@@ -2899,7 +2899,7 @@ get_member_function_from_ptrfunc (instance_ptrptr, function)
delta_identifier, delta_identifier,
NULL_TREE, 0), NULL_TREE, 0),
integer_zero_node), integer_zero_node),
delta, 1); delta);
} }
if (flag_vtable_thunks) if (flag_vtable_thunks)
...@@ -3262,10 +3262,9 @@ build_x_binary_op (code, arg1, arg2) ...@@ -3262,10 +3262,9 @@ build_x_binary_op (code, arg1, arg2)
} }
tree tree
build_binary_op (code, arg1, arg2, convert_p) build_binary_op (code, arg1, arg2)
enum tree_code code; enum tree_code code;
tree arg1, arg2; tree arg1, arg2;
int convert_p ATTRIBUTE_UNUSED;
{ {
return build_binary_op_nodefault (code, arg1, arg2, code); return build_binary_op_nodefault (code, arg1, arg2, code);
} }
...@@ -3661,18 +3660,17 @@ build_binary_op_nodefault (code, orig_op0, orig_op1, error_code) ...@@ -3661,18 +3660,17 @@ build_binary_op_nodefault (code, orig_op0, orig_op1, error_code)
tree e1, e2, e3; tree e1, e2, e3;
tree integer_neg_one_node tree integer_neg_one_node
= build_binary_op (MINUS_EXPR, integer_zero_node, = build_binary_op (MINUS_EXPR, integer_zero_node,
integer_one_node, 1); integer_one_node);
e1 = build_binary_op (EQ_EXPR, index0, index1, 1); e1 = build_binary_op (EQ_EXPR, index0, index1);
e2 = build_binary_op (NE_EXPR, index1, integer_neg_one_node, 1); e2 = build_binary_op (NE_EXPR, index1, integer_neg_one_node);
e2 = build_binary_op (TRUTH_ANDIF_EXPR, e2, e2 = build_binary_op (TRUTH_ANDIF_EXPR, e2,
build_binary_op (EQ_EXPR, delta20, delta21, 1), build_binary_op (EQ_EXPR, delta20, delta21));
1); e3 = build_binary_op (EQ_EXPR, pfn0, pfn1);
e3 = build_binary_op (EQ_EXPR, pfn0, pfn1, 1); e2 = build_binary_op (TRUTH_ORIF_EXPR, e2, e3);
e2 = build_binary_op (TRUTH_ORIF_EXPR, e2, e3, 1); e2 = build_binary_op (TRUTH_ANDIF_EXPR, e1, e2);
e2 = build_binary_op (TRUTH_ANDIF_EXPR, e1, e2, 1);
if (code == EQ_EXPR) if (code == EQ_EXPR)
return e2; return e2;
return build_binary_op (EQ_EXPR, e2, integer_zero_node, 1); return build_binary_op (EQ_EXPR, e2, integer_zero_node);
} }
else if (TYPE_PTRMEMFUNC_P (type0) else if (TYPE_PTRMEMFUNC_P (type0)
&& TYPE_PTRMEMFUNC_FN_TYPE (type0) == type1) && TYPE_PTRMEMFUNC_FN_TYPE (type0) == type1)
...@@ -3685,7 +3683,7 @@ build_binary_op_nodefault (code, orig_op0, orig_op1, error_code) ...@@ -3685,7 +3683,7 @@ build_binary_op_nodefault (code, orig_op0, orig_op1, error_code)
tree delta21 = integer_zero_node; tree delta21 = integer_zero_node;
tree e1, e2, e3; tree e1, e2, e3;
tree integer_neg_one_node tree integer_neg_one_node
= build_binary_op (MINUS_EXPR, integer_zero_node, integer_one_node, 1); = build_binary_op (MINUS_EXPR, integer_zero_node, integer_one_node);
if (TREE_CODE (TREE_OPERAND (op1, 0)) == FUNCTION_DECL if (TREE_CODE (TREE_OPERAND (op1, 0)) == FUNCTION_DECL
&& DECL_VINDEX (TREE_OPERAND (op1, 0))) && DECL_VINDEX (TREE_OPERAND (op1, 0)))
{ {
...@@ -3710,23 +3708,20 @@ build_binary_op_nodefault (code, orig_op0, orig_op1, error_code) ...@@ -3710,23 +3708,20 @@ build_binary_op_nodefault (code, orig_op0, orig_op1, error_code)
TREE_CONSTANT (nop1) = TREE_CONSTANT (op1); TREE_CONSTANT (nop1) = TREE_CONSTANT (op1);
op1 = nop1; op1 = nop1;
} }
e1 = build_binary_op (EQ_EXPR, index0, index1, 1); e1 = build_binary_op (EQ_EXPR, index0, index1);
e2 = build_binary_op (NE_EXPR, index1, integer_neg_one_node, 1); e2 = build_binary_op (NE_EXPR, index1, integer_neg_one_node);
e2 = build_binary_op (TRUTH_ANDIF_EXPR, e2, e2 = build_binary_op (TRUTH_ANDIF_EXPR, e2,
build_binary_op (EQ_EXPR, delta20, delta21, 1), build_binary_op (EQ_EXPR, delta20, delta21));
1); e3 = build_binary_op (EQ_EXPR, pfn0, op1);
e3 = build_binary_op (EQ_EXPR, pfn0, op1, 1); e2 = build_binary_op (TRUTH_ORIF_EXPR, e2, e3);
e2 = build_binary_op (TRUTH_ORIF_EXPR, e2, e3, 1); e2 = build_binary_op (TRUTH_ANDIF_EXPR, e1, e2);
e2 = build_binary_op (TRUTH_ANDIF_EXPR, e1, e2, 1);
if (code == EQ_EXPR) if (code == EQ_EXPR)
return e2; return e2;
return build_binary_op (EQ_EXPR, e2, integer_zero_node, 1); return build_binary_op (EQ_EXPR, e2, integer_zero_node);
} }
else if (TYPE_PTRMEMFUNC_P (type1) else if (TYPE_PTRMEMFUNC_P (type1)
&& TYPE_PTRMEMFUNC_FN_TYPE (type1) == type0) && TYPE_PTRMEMFUNC_FN_TYPE (type1) == type0)
{ return build_binary_op (code, op1, op0);
return build_binary_op (code, op1, op0, 1);
}
break; break;
case MAX_EXPR: case MAX_EXPR:
...@@ -4165,7 +4160,7 @@ pointer_int_sum (resultcode, ptrop, intop) ...@@ -4165,7 +4160,7 @@ pointer_int_sum (resultcode, ptrop, intop)
enum tree_code subcode = resultcode; enum tree_code subcode = resultcode;
if (TREE_CODE (intop) == MINUS_EXPR) if (TREE_CODE (intop) == MINUS_EXPR)
subcode = (subcode == PLUS_EXPR ? MINUS_EXPR : PLUS_EXPR); subcode = (subcode == PLUS_EXPR ? MINUS_EXPR : PLUS_EXPR);
ptrop = build_binary_op (subcode, ptrop, TREE_OPERAND (intop, 1), 1); ptrop = build_binary_op (subcode, ptrop, TREE_OPERAND (intop, 1));
intop = TREE_OPERAND (intop, 0); intop = TREE_OPERAND (intop, 0);
} }
...@@ -4182,8 +4177,7 @@ pointer_int_sum (resultcode, ptrop, intop) ...@@ -4182,8 +4177,7 @@ pointer_int_sum (resultcode, ptrop, intop)
intop = cp_convert (result_type, intop = cp_convert (result_type,
build_binary_op (MULT_EXPR, intop, build_binary_op (MULT_EXPR, intop,
cp_convert (TREE_TYPE (intop), cp_convert (TREE_TYPE (intop),
size_exp), size_exp)));
1));
/* Create the sum or difference. */ /* Create the sum or difference. */
...@@ -4226,7 +4220,7 @@ pointer_diff (op0, op1, ptrtype) ...@@ -4226,7 +4220,7 @@ pointer_diff (op0, op1, ptrtype)
then drop through to build the divide operator. */ then drop through to build the divide operator. */
op0 = build_binary_op (MINUS_EXPR, cp_convert (restype, op0), op0 = build_binary_op (MINUS_EXPR, cp_convert (restype, op0),
cp_convert (restype, op1), 1); cp_convert (restype, op1));
/* This generates an error if op1 is a pointer to an incomplete type. */ /* This generates an error if op1 is a pointer to an incomplete type. */
if (TYPE_SIZE (TREE_TYPE (TREE_TYPE (op1))) == 0) if (TYPE_SIZE (TREE_TYPE (TREE_TYPE (op1))) == 0)
...@@ -4669,7 +4663,7 @@ build_unary_op (code, xarg, noconvert) ...@@ -4669,7 +4663,7 @@ build_unary_op (code, xarg, noconvert)
if (mark_addressable (TREE_OPERAND (arg, 0)) == 0) if (mark_addressable (TREE_OPERAND (arg, 0)) == 0)
return error_mark_node; return error_mark_node;
return build_binary_op (PLUS_EXPR, TREE_OPERAND (arg, 0), return build_binary_op (PLUS_EXPR, TREE_OPERAND (arg, 0),
TREE_OPERAND (arg, 1), 1); TREE_OPERAND (arg, 1));
} }
/* Uninstantiated types are all functions. Taking the /* Uninstantiated types are all functions. Taking the
...@@ -6025,7 +6019,7 @@ build_modify_expr (lhs, modifycode, rhs) ...@@ -6025,7 +6019,7 @@ build_modify_expr (lhs, modifycode, rhs)
else else
{ {
lhs = stabilize_reference (lhs); lhs = stabilize_reference (lhs);
newrhs = build_binary_op (modifycode, lhs, rhs, 1); newrhs = build_binary_op (modifycode, lhs, rhs);
if (newrhs == error_mark_node) if (newrhs == error_mark_node)
{ {
cp_error (" in evaluation of `%Q(%#T, %#T)'", modifycode, cp_error (" in evaluation of `%Q(%#T, %#T)'", modifycode,
...@@ -6387,7 +6381,7 @@ get_delta_difference (from, to, force) ...@@ -6387,7 +6381,7 @@ get_delta_difference (from, to, force)
return build_binary_op (MINUS_EXPR, return build_binary_op (MINUS_EXPR,
integer_zero_node, integer_zero_node,
delta, 1); delta);
} }
if (TREE_VIA_VIRTUAL (binfo)) if (TREE_VIA_VIRTUAL (binfo))
...@@ -6525,8 +6519,8 @@ build_ptrmemfunc (type, pfn, force) ...@@ -6525,8 +6519,8 @@ build_ptrmemfunc (type, pfn, force)
TYPE_METHOD_BASETYPE (TREE_TYPE (type)), TYPE_METHOD_BASETYPE (TREE_TYPE (type)),
force); force);
delta = build_binary_op (PLUS_EXPR, ndelta, n, 1); delta = build_binary_op (PLUS_EXPR, ndelta, n);
delta2 = build_binary_op (PLUS_EXPR, ndelta2, n, 1); delta2 = build_binary_op (PLUS_EXPR, ndelta2, n);
e1 = fold (build (GT_EXPR, boolean_type_node, idx, integer_zero_node)); e1 = fold (build (GT_EXPR, boolean_type_node, idx, integer_zero_node));
e2 = build_ptrmemfunc1 (TYPE_GET_PTRMEMFUNC_TYPE (type), delta, idx, e2 = build_ptrmemfunc1 (TYPE_GET_PTRMEMFUNC_TYPE (type), delta, idx,
...@@ -6605,8 +6599,7 @@ expand_ptrmemfunc_cst (cst, delta, idx, pfn, delta2) ...@@ -6605,8 +6599,7 @@ expand_ptrmemfunc_cst (cst, delta, idx, pfn, delta2)
*delta2 = size_binop (PLUS_EXPR, *delta2, *delta2 = size_binop (PLUS_EXPR, *delta2,
build_binary_op (PLUS_EXPR, build_binary_op (PLUS_EXPR,
*delta, *delta,
integer_zero_node, integer_zero_node));
1));
} }
} }
......
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