diff options
author | Aldy Hernandez <aldyh@gcc.gnu.org> | 2008-09-23 14:55:14 +0000 |
---|---|---|
committer | Aldy Hernandez <aldyh@gcc.gnu.org> | 2008-09-23 14:55:14 +0000 |
commit | ba47d38d4c5d229c686e479fceb9ee9eb23442ff (patch) | |
tree | 21c7a88d82936ace208bcdd02d4ba68c691c6cf7 /gcc/cp/init.c | |
parent | f0ac18b79931a074b5bc88e0b64ea8ef84e40941 (diff) | |
download | gcc-ba47d38d4c5d229c686e479fceb9ee9eb23442ff.zip gcc-ba47d38d4c5d229c686e479fceb9ee9eb23442ff.tar.gz gcc-ba47d38d4c5d229c686e479fceb9ee9eb23442ff.tar.bz2 |
c-tree.h: Add argument to c_objc_common_truthvalue_conversion, parser_build_binary_op.
* c-tree.h: Add argument to c_objc_common_truthvalue_conversion,
parser_build_binary_op.
* c-decl.c (build_enumerator): Pass location to build_binary_op.
* c-typeck.c (build_array_ref): Same.
(parser_build_unary_op): New location argument.
(pointer_diff): Pass location to build_binary_op,
c_objc_common_truthvalue_conversion.
(build_modify_expr): Same.
(build_unary_op): New location argument.
(build_binary_op): New location argument.
(c_objc_common_truthvalue_conversion): Pass location to
c_*common_truthvalue_conversion.
* c-convert.c (convert): Same.
* c-common.c (binary_op_error): New location argument.
(pointer_int_sum): Pass location to build_binary_op.
(c_common_truthvalue_conversion): New location argument.
(warn_for_sign_compare): Same.
* c-common.h: Add location argument to c_common_truthvalue_conversion,
binary_op_error, build_binary_op, warn_for_sign_compare.
* c-parser.c (c_parser_condition): Pass location to
c_*common_truthvalue_conversion.
(c_parser_conditional_expression): Save condition's location and pass
it on down.
(c_parser_binary_expression): Same, but for the binary operator's
location.
(c_parser_omp_for_loop): Pass location to
c_objc_common_truthvalue_conversion.
objc/
* objc-act.c (next_sjlj_build_enter_and_setjmp): Call
c_common_truthvalue_conversion with location.
(next_sjlj_build_catch_list): Same.
(next_sjlj_build_try_catch_finally): Same.
testsuite/
* gcc.dg/Walways-true-1.c: Test column numbers.
* gcc.dg/c90-const-expr-5.c: Same.
* gcc.dg/compare4.c: Same.
* gcc.dg/Werror-1.c: Same.
cp/
* typeck.c (build_array_ref): Pass location to cp_build_binary_op.
(get_member_function_from_ptrfunc): Same.
(build_x_binary_op): Same.
(build_binary_op): Same.
(cp_build_binary_op): New location argument.
(pointer_diff): Pass location to cp_build_binary_op.
(cp_truthvalue_conversion): Pass location to build_binary_op.
(convert_ptrmem): Pass location to cp_build_binary_op.
(cp_build_modify_expr): Same.
(build_ptrmemfunc): Same.
* init.c (expand_cleanup_for_base): Pass location to
c_common_truthvalue_conversion.
(build_new_1): Pass location to cp_build_binary_op.
(build_vec_delete_1): Pass location to *build_binary_op,
c_common_truthvalue_conversion.
(build_vec_init): Same.
(build_delete): Same.
* decl.c (compute_array_index_type): Same.
* call.c (build_new_op): Same.
* rtti.c (build_dynamic_cast_1): Same.
* cp-tree.h: Add argument to cp_build_binary_op.
* semantics.c (handle_omp_for_class_iterator): Pass location to
*build_binary_op, c_common_truthvalue_conversion.
* decl2.c (get_guard_cond): Same.
From-SVN: r140598
Diffstat (limited to 'gcc/cp/init.c')
-rw-r--r-- | gcc/cp/init.c | 23 |
1 files changed, 15 insertions, 8 deletions
diff --git a/gcc/cp/init.c b/gcc/cp/init.c index 1c722f5..d68dd2d 100644 --- a/gcc/cp/init.c +++ b/gcc/cp/init.c @@ -1001,7 +1001,7 @@ expand_cleanup_for_base (tree binfo, tree flag) tf_warning_or_error); if (flag) expr = fold_build3 (COND_EXPR, void_type_node, - c_common_truthvalue_conversion (flag), + c_common_truthvalue_conversion (input_location, flag), expr, integer_zero_node); finish_eh_cleanup (expr); @@ -1877,7 +1877,8 @@ build_new_1 (tree placement, tree type, tree nelts, tree init, for (elt_type = type; TREE_CODE (elt_type) == ARRAY_TYPE; elt_type = TREE_TYPE (elt_type)) - nelts = cp_build_binary_op (MULT_EXPR, nelts, + nelts = cp_build_binary_op (input_location, + MULT_EXPR, nelts, array_type_nelts_top (elt_type), complain); @@ -2177,7 +2178,8 @@ build_new_1 (tree placement, tree type, tree nelts, tree init, } init_expr = build_vec_init (init_expr, - cp_build_binary_op (MINUS_EXPR, outer_nelts, + cp_build_binary_op (input_location, + MINUS_EXPR, outer_nelts, integer_one_node, complain), init, @@ -2312,7 +2314,8 @@ build_new_1 (tree placement, tree type, tree nelts, tree init, { if (check_new) { - tree ifexp = cp_build_binary_op (NE_EXPR, alloc_node, + tree ifexp = cp_build_binary_op (input_location, + NE_EXPR, alloc_node, integer_zero_node, complain); rval = build_conditional_expr (ifexp, rval, alloc_node, @@ -2579,7 +2582,8 @@ build_vec_delete_1 (tree base, tree maxindex, tree type, cookie_size = targetm.cxx.get_cookie_size (type); base_tbd = cp_convert (ptype, - cp_build_binary_op (MINUS_EXPR, + cp_build_binary_op (input_location, + MINUS_EXPR, cp_convert (string_type_node, base), cookie_size, @@ -2933,13 +2937,15 @@ build_vec_init (tree base, tree maxindex, tree init, && from_array != 2) { tree e; - tree m = cp_build_binary_op (MINUS_EXPR, maxindex, iterator, + tree m = cp_build_binary_op (input_location, + MINUS_EXPR, maxindex, iterator, complain); /* Flatten multi-dimensional array since build_vec_delete only expects one-dimensional array. */ if (TREE_CODE (type) == ARRAY_TYPE) - m = cp_build_binary_op (MULT_EXPR, m, + m = cp_build_binary_op (input_location, + MULT_EXPR, m, array_type_nelts_total (type), complain); @@ -3167,7 +3173,8 @@ build_delete (tree type, tree addr, special_function_kind auto_delete, ifexp = integer_one_node; else /* Handle deleting a null pointer. */ - ifexp = fold (cp_build_binary_op (NE_EXPR, addr, integer_zero_node, + ifexp = fold (cp_build_binary_op (input_location, + NE_EXPR, addr, integer_zero_node, tf_warning_or_error)); if (ifexp != integer_one_node) |