re PR c/19978 (overflow in expression of constants should not cause multiple warnings)
authorManuel López-Ibáñez <manu@gcc.gnu.org>
Fri, 5 Jan 2007 21:57:01 +0000 (21:57 +0000)
committerManuel López-Ibáñez <manu@gcc.gnu.org>
Fri, 5 Jan 2007 21:57:01 +0000 (21:57 +0000)
commit59c0753dd31ebc72074a9650182896e0c6f5647a
tree6907cbd4435447e2f591dc2ff312abadddf5058a
parentc2658540a35254dd462e104abf9cf8b7bdb68113
re PR c/19978 (overflow in expression of constants should not cause multiple warnings)

2007-01-05  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>

PR c/19978
* tree.h (TREE_OVERFLOW_P): New.
* c-typeck.c (parser_build_unary_op): Warn only if result
overflowed and operands did not.
(parser_build_binary_op): Likewise.
(convert_for_assignment): Remove redundant overflow_warning.
* c-common.c (overflow_warning): Don't check or set TREE_OVERFLOW.

cp/
* semantics.c (finish_unary_op_expr): Warn only if result
overflowed and operands did not.

testsuite/
* gcc.dg/multiple-overflow-warn-1.c: New.
* gcc.dg/multiple-overflow-warn-2.c: New.
* gcc.dg/overflow-warn-6.c: New.
* g++.dg/warn/multiple-overflow-warn-1.C: New.

From-SVN: r120505
gcc/ChangeLog
gcc/c-common.c
gcc/c-typeck.c
gcc/cp/ChangeLog
gcc/cp/semantics.c
gcc/testsuite/ChangeLog
gcc/testsuite/g++.dg/warn/multiple-overflow-warn-1.C [new file with mode: 0644]
gcc/testsuite/gcc.dg/multiple-overflow-warn-1.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/multiple-overflow-warn-2.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/overflow-warn-6.c [new file with mode: 0644]
gcc/tree.h