diff options
author | Marek Polacek <polacek@redhat.com> | 2017-08-09 08:51:20 +0000 |
---|---|---|
committer | Marek Polacek <mpolacek@gcc.gnu.org> | 2017-08-09 08:51:20 +0000 |
commit | a32c8316ff282ec3eb60e222e91fb19998c12f46 (patch) | |
tree | 5c9606b760b22332192173cec1c9c8ba76d9dcb4 /gcc/c/c-array-notation.c | |
parent | bc47a525cbd41692135f24607a52bd42e93400cb (diff) | |
download | gcc-a32c8316ff282ec3eb60e222e91fb19998c12f46.zip gcc-a32c8316ff282ec3eb60e222e91fb19998c12f46.tar.gz gcc-a32c8316ff282ec3eb60e222e91fb19998c12f46.tar.bz2 |
re PR c/81417 (-Wsign-compare should print types being compared)
PR c/81417
* c-array-notation.c (fix_builtin_array_notation_fn): Update calls to
build_conditional_expr.
* c-parser.c (c_parser_conditional_expression): Create locations for
EXP1 and EXP2 from their source ranges. Pass the locations down to
build_conditional_expr.
* c-tree.h (build_conditional_expr): Update declaration.
* c-typeck.c (build_conditional_expr): Add location_t parameters.
For -Wsign-compare, also print the types.
* input.c (make_location): New overload.
* input.h (make_location): Declare.
* objc-next-runtime-abi-02.c (build_v2_build_objc_method_call): Update
a call to build_conditional_expr.
* Wsign-compare-1.c: New test.
* gcc.dg/compare1.c: Adjust dg-bogus.
* gcc.dg/compare2.c: Likewise.
* gcc.dg/compare3.c: Likewise.
* gcc.dg/compare7.c: Likewise.
* gcc.dg/compare8.c: Likewise.
* gcc.dg/compare9.c: Likewise.
* gcc.dg/pr11492.c: Likewise.
From-SVN: r250984
Diffstat (limited to 'gcc/c/c-array-notation.c')
-rw-r--r-- | gcc/c/c-array-notation.c | 32 |
1 files changed, 20 insertions, 12 deletions
diff --git a/gcc/c/c-array-notation.c b/gcc/c/c-array-notation.c index e430f5c..40f1cfda 100644 --- a/gcc/c/c-array-notation.c +++ b/gcc/c/c-array-notation.c @@ -355,8 +355,9 @@ fix_builtin_array_notation_fn (tree an_builtin_fn, tree *new_var) new_cond_expr = build2 (NE_EXPR, TREE_TYPE (func_parm), func_parm, build_zero_cst (TREE_TYPE (func_parm))); new_expr = build_conditional_expr - (location, new_cond_expr, false, new_yes_expr, - TREE_TYPE (new_yes_expr), new_no_expr, TREE_TYPE (new_no_expr)); + (location, new_cond_expr, false, + new_yes_expr, TREE_TYPE (new_yes_expr), location, + new_no_expr, TREE_TYPE (new_no_expr), location); break; case BUILT_IN_CILKPLUS_SEC_REDUCE_ALL_NONZERO: new_var_init = build_modify_expr @@ -375,8 +376,9 @@ fix_builtin_array_notation_fn (tree an_builtin_fn, tree *new_var) new_cond_expr = build2 (EQ_EXPR, TREE_TYPE (func_parm), func_parm, build_zero_cst (TREE_TYPE (func_parm))); new_expr = build_conditional_expr - (location, new_cond_expr, false, new_yes_expr, - TREE_TYPE (new_yes_expr), new_no_expr, TREE_TYPE (new_no_expr)); + (location, new_cond_expr, false, + new_yes_expr, TREE_TYPE (new_yes_expr), location, + new_no_expr, TREE_TYPE (new_no_expr), location); break; case BUILT_IN_CILKPLUS_SEC_REDUCE_ANY_ZERO: new_var_init = build_modify_expr @@ -394,8 +396,9 @@ fix_builtin_array_notation_fn (tree an_builtin_fn, tree *new_var) new_cond_expr = build2 (EQ_EXPR, TREE_TYPE (func_parm), func_parm, build_zero_cst (TREE_TYPE (func_parm))); new_expr = build_conditional_expr - (location, new_cond_expr, false, new_yes_expr, - TREE_TYPE (new_yes_expr), new_no_expr, TREE_TYPE (new_no_expr)); + (location, new_cond_expr, false, + new_yes_expr, TREE_TYPE (new_yes_expr), location, + new_no_expr, TREE_TYPE (new_no_expr), location); break; case BUILT_IN_CILKPLUS_SEC_REDUCE_ANY_NONZERO: new_var_init = build_modify_expr @@ -413,8 +416,9 @@ fix_builtin_array_notation_fn (tree an_builtin_fn, tree *new_var) new_cond_expr = build2 (NE_EXPR, TREE_TYPE (func_parm), func_parm, build_zero_cst (TREE_TYPE (func_parm))); new_expr = build_conditional_expr - (location, new_cond_expr, false, new_yes_expr, - TREE_TYPE (new_yes_expr), new_no_expr, TREE_TYPE (new_no_expr)); + (location, new_cond_expr, false, + new_yes_expr, TREE_TYPE (new_yes_expr), location, + new_no_expr, TREE_TYPE (new_no_expr), location); break; case BUILT_IN_CILKPLUS_SEC_REDUCE_MAX: if (TYPE_MIN_VALUE (new_var_type)) @@ -434,7 +438,8 @@ fix_builtin_array_notation_fn (tree an_builtin_fn, tree *new_var) new_expr = build_conditional_expr (location, build2 (LT_EXPR, TREE_TYPE (*new_var), *new_var, func_parm), false, - new_yes_expr, TREE_TYPE (*new_var), new_no_expr, TREE_TYPE (*new_var)); + new_yes_expr, TREE_TYPE (*new_var), location, + new_no_expr, TREE_TYPE (*new_var), location); break; case BUILT_IN_CILKPLUS_SEC_REDUCE_MIN: if (TYPE_MAX_VALUE (new_var_type)) @@ -454,7 +459,8 @@ fix_builtin_array_notation_fn (tree an_builtin_fn, tree *new_var) new_expr = build_conditional_expr (location, build2 (GT_EXPR, TREE_TYPE (*new_var), *new_var, func_parm), false, - new_yes_expr, TREE_TYPE (*new_var), new_no_expr, TREE_TYPE (*new_var)); + new_yes_expr, TREE_TYPE (*new_var), location, + new_no_expr, TREE_TYPE (*new_var), location); break; case BUILT_IN_CILKPLUS_SEC_REDUCE_MAX_IND: new_var_init = build_modify_expr @@ -504,7 +510,8 @@ fix_builtin_array_notation_fn (tree an_builtin_fn, tree *new_var) build2 (LE_EXPR, TREE_TYPE (array_ind_value), array_ind_value, func_parm), false, - new_yes_list, TREE_TYPE (*new_var), new_no_list, TREE_TYPE (*new_var)); + new_yes_list, TREE_TYPE (*new_var), location, + new_no_list, TREE_TYPE (*new_var), location); break; case BUILT_IN_CILKPLUS_SEC_REDUCE_MIN_IND: new_var_init = build_modify_expr @@ -554,7 +561,8 @@ fix_builtin_array_notation_fn (tree an_builtin_fn, tree *new_var) build2 (GE_EXPR, TREE_TYPE (array_ind_value), array_ind_value, func_parm), false, - new_yes_list, TREE_TYPE (*new_var), new_no_list, TREE_TYPE (*new_var)); + new_yes_list, TREE_TYPE (*new_var), location, + new_no_list, TREE_TYPE (*new_var), location); break; case BUILT_IN_CILKPLUS_SEC_REDUCE: new_var_init = build_modify_expr |