PR c/65179
authormpolacek <mpolacek@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 7 May 2015 19:36:31 +0000 (19:36 +0000)
committermpolacek <mpolacek@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 7 May 2015 19:36:31 +0000 (19:36 +0000)
commitcdc64059c5405c2b3c489b071edfe2127cc45333
tree12367850915ce482968be36f7c2f4344d74b5ed5
parente58b5f40ac976b65acb3827b16afa10ab7a11eb6
PR c/65179
* c-common.c (c_fully_fold_internal): Warn when left shifting a
negative value.
* c.opt (Wshift-negative-value): New option.
* c-opts.c (c_common_post_options): Set warn_shift_negative_value
when -Wextra and C99/C++11 mode.

* c-typeck.c (build_binary_op): Warn when left shifting a negative
value.

* typeck.c (cp_build_binary_op): Warn when left shifting a negative
value.

* doc/invoke.texi: Document -Wshift-negative-value.

* c-c++-common/Wshift-negative-value-1.c: New test.
* testsuite/c-c++-common/Wshift-negative-value-2.c: New test.
* testsuite/c-c++-common/Wshift-negative-value-3.c: New test.
* testsuite/c-c++-common/Wshift-negative-value-4.c: New test.
* testsuite/c-c++-common/Wshift-negative-value-5.c: New test.
* testsuite/c-c++-common/Wshift-negative-value-6.c: New test.
* testsuite/gcc.dg/c90-left-shift-1.c: New test.
* testsuite/gcc.dg/c99-const-expr-7.c: Add dg-error.
* testsuite/gcc.dg/c99-left-shift-1.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@222889 138bc75d-0d04-0410-961f-82ee72b054a4
20 files changed:
gcc/ChangeLog
gcc/c-family/ChangeLog
gcc/c-family/c-common.c
gcc/c-family/c-opts.c
gcc/c-family/c.opt
gcc/c/ChangeLog
gcc/c/c-typeck.c
gcc/cp/ChangeLog
gcc/cp/typeck.c
gcc/doc/invoke.texi
gcc/testsuite/ChangeLog
gcc/testsuite/c-c++-common/Wshift-negative-value-1.c [new file with mode: 0644]
gcc/testsuite/c-c++-common/Wshift-negative-value-2.c [new file with mode: 0644]
gcc/testsuite/c-c++-common/Wshift-negative-value-3.c [new file with mode: 0644]
gcc/testsuite/c-c++-common/Wshift-negative-value-4.c [new file with mode: 0644]
gcc/testsuite/c-c++-common/Wshift-negative-value-5.c [new file with mode: 0644]
gcc/testsuite/c-c++-common/Wshift-negative-value-6.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/c90-left-shift-1.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/c99-const-expr-7.c
gcc/testsuite/gcc.dg/c99-left-shift-1.c [new file with mode: 0644]