diff options
author | Martin Sebor <msebor@redhat.com> | 2017-05-24 22:07:21 +0000 |
---|---|---|
committer | Martin Sebor <msebor@gcc.gnu.org> | 2017-05-24 16:07:21 -0600 |
commit | 3cd211af9989ca33f08c9d9d7c29ba7cb208b645 (patch) | |
tree | 65c34bbc585e40c4958be3f1fc9ddbc5624dd312 /gcc/c | |
parent | 1ab4db9379e5096a04c4c68b9edfef9c938cf3b5 (diff) | |
download | gcc-3cd211af9989ca33f08c9d9d7c29ba7cb208b645.zip gcc-3cd211af9989ca33f08c9d9d7c29ba7cb208b645.tar.gz gcc-3cd211af9989ca33f08c9d9d7c29ba7cb208b645.tar.bz2 |
PR c/80731 - poor -Woverflow warnings
gcc/c-family/ChangeLog:
PR c/80731
* c-common.h (unsafe_conversion_p): Add a function argument.
* c-common.c (unsafe_conversion_p): Same.
Add type names and values to diagnostics.
(scalar_to_vector): Adjust.
* c-warn.c (constant_expression_error): Add a function argument.
Add type names and values to diagnostics.
(conversion_warning): Add a function argument.
Add type names and values to diagnostics.
(warnings_for_convert_and_check): Same.
gcc/c/ChangeLog:
PR c/80731
* c-fold.c (c_fully_fold_internal): Adjust.
* c-typeck.c (parser_build_unary_op): Adjust.
gcc/cp/ChangeLog:
PR c/80731
* call.c (fully_fold_internal): Adjust.
gcc/testsuite/ChangeLog:
PR c/80731
* c-c++-common/Wfloat-conversion.c: Adjust.
* c-c++-common/dfp/convert-int-saturate.c: Same.
* c-c++-common/pr68657-1.c: Same.
* g++.dg/ext/utf-cvt.C: Same.
* g++.dg/ext/utf16-4.C: Same.
* g++.dg/warn/Wconversion-real-integer-3.C: Same.
* g++.dg/warn/Wconversion-real-integer2.C: Same.
* g++.dg/warn/Wconversion3.C: Same.
* g++.dg/warn/Wconversion4.C: Same.
* g++.dg/warn/Wsign-conversion.C: Same.
* g++.dg/warn/overflow-warn-1.C: Same.
* g++.dg/warn/overflow-warn-3.C: Same.
* g++.dg/warn/overflow-warn-4.C: Same.
* g++.dg/warn/pr35635.C: Same.
* g++.old-deja/g++.mike/enum1.C: Same.
* gcc.dg/Wconversion-3.c: Same.
* gcc.dg/Wconversion-5.c: Same.
* gcc.dg/Wconversion-complex-c99.c: Same.
* gcc.dg/Wconversion-complex-gnu.c: Same.
* gcc.dg/Wconversion-integer.c: Same.
* gcc.dg/Wsign-conversion.c: Same.
* gcc.dg/bitfld-2.c: Same.
* gcc.dg/c90-const-expr-11.c: Same.
* gcc.dg/c90-const-expr-7.c: Same.
* gcc.dg/c99-const-expr-7.c: Same.
* gcc.dg/overflow-warn-1.c: Same.
* gcc.dg/overflow-warn-2.c: Same.
* gcc.dg/overflow-warn-3.c: Same.
* gcc.dg/overflow-warn-4.c: Same.
* gcc.dg/overflow-warn-5.c: Same.
* gcc.dg/overflow-warn-8.c: Same.
* gcc.dg/overflow-warn-9.c: New test.
* gcc.dg/pr35635.c: Adjust.
* gcc.dg/pr59940.c: Same.
* gcc.dg/pr59963-2.c: Same.
* gcc.dg/pr60114.c: Same.
* gcc.dg/switch-warn-2.c: Same.
* gcc.dg/utf-cvt.c: Same.
* gcc.dg/utf16-4.c: Same.
From-SVN: r248431
Diffstat (limited to 'gcc/c')
-rw-r--r-- | gcc/c/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/c/c-fold.c | 4 | ||||
-rw-r--r-- | gcc/c/c-typeck.c | 2 |
3 files changed, 9 insertions, 3 deletions
diff --git a/gcc/c/ChangeLog b/gcc/c/ChangeLog index cb04d4a..d240298 100644 --- a/gcc/c/ChangeLog +++ b/gcc/c/ChangeLog @@ -1,3 +1,9 @@ +2017-05-24 Martin Sebor <msebor@redhat.com> + + PR c/80731 + * c-fold.c (c_fully_fold_internal): Adjust. + * c-typeck.c (parser_build_unary_op): Adjust. + 2017-05-23 Thomas Schwinge <thomas@codesourcery.com> * c-parser.c (OACC_KERNELS_CLAUSE_MASK): Add diff --git a/gcc/c/c-fold.c b/gcc/c/c-fold.c index 2601224..0abc4ac 100644 --- a/gcc/c/c-fold.c +++ b/gcc/c/c-fold.c @@ -307,7 +307,7 @@ c_fully_fold_internal (tree expr, bool in_init, bool *maybe_const_operands, if (TREE_OVERFLOW_P (ret) && !TREE_OVERFLOW_P (op0) && !TREE_OVERFLOW_P (op1)) - overflow_warning (EXPR_LOC_OR_LOC (expr, input_location), ret); + overflow_warning (EXPR_LOC_OR_LOC (expr, input_location), ret, expr); if (code == LSHIFT_EXPR && TREE_CODE (orig_op0) != INTEGER_CST && TREE_CODE (TREE_TYPE (orig_op0)) == INTEGER_TYPE @@ -428,7 +428,7 @@ c_fully_fold_internal (tree expr, bool in_init, bool *maybe_const_operands, default: if (TREE_OVERFLOW_P (ret) && !TREE_OVERFLOW_P (op0)) - overflow_warning (EXPR_LOCATION (expr), ret); + overflow_warning (EXPR_LOCATION (expr), ret, op0); break; } goto out; diff --git a/gcc/c/c-typeck.c b/gcc/c/c-typeck.c index 25b7dd6..95a607a 100644 --- a/gcc/c/c-typeck.c +++ b/gcc/c/c-typeck.c @@ -3588,7 +3588,7 @@ parser_build_unary_op (location_t loc, enum tree_code code, struct c_expr arg) result.value = build_unary_op (loc, code, arg.value, false); if (TREE_OVERFLOW_P (result.value) && !TREE_OVERFLOW_P (arg.value)) - overflow_warning (loc, result.value); + overflow_warning (loc, result.value, arg.value); } /* We are typically called when parsing a prefix token at LOC acting on |