aboutsummaryrefslogtreecommitdiff
path: root/gcc/input.c
diff options
context:
space:
mode:
authorMarek Polacek <polacek@redhat.com>2017-08-09 08:51:20 +0000
committerMarek Polacek <mpolacek@gcc.gnu.org>2017-08-09 08:51:20 +0000
commita32c8316ff282ec3eb60e222e91fb19998c12f46 (patch)
tree5c9606b760b22332192173cec1c9c8ba76d9dcb4 /gcc/input.c
parentbc47a525cbd41692135f24607a52bd42e93400cb (diff)
downloadgcc-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/input.c')
-rw-r--r--gcc/input.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/gcc/input.c b/gcc/input.c
index 0480eb2..a01c504 100644
--- a/gcc/input.c
+++ b/gcc/input.c
@@ -898,6 +898,15 @@ make_location (location_t caret, location_t start, location_t finish)
return combined_loc;
}
+/* Same as above, but taking a source range rather than two locations. */
+
+location_t
+make_location (location_t caret, source_range src_range)
+{
+ location_t pure_loc = get_pure_location (caret);
+ return COMBINE_LOCATION_DATA (line_table, pure_loc, src_range, NULL);
+}
+
#define ONE_K 1024
#define ONE_M (ONE_K * ONE_K)