summaryrefslogtreecommitdiff
path: root/gcc/testsuite/gcc.dg/c90-left-shift-1.c
diff options
context:
space:
mode:
authormpolacek <mpolacek@138bc75d-0d04-0410-961f-82ee72b054a4>2015-05-07 19:36:31 +0000
committermpolacek <mpolacek@138bc75d-0d04-0410-961f-82ee72b054a4>2015-05-07 19:36:31 +0000
commitcdc64059c5405c2b3c489b071edfe2127cc45333 (patch)
tree12367850915ce482968be36f7c2f4344d74b5ed5 /gcc/testsuite/gcc.dg/c90-left-shift-1.c
parente58b5f40ac976b65acb3827b16afa10ab7a11eb6 (diff)
downloadgcc-cdc64059c5405c2b3c489b071edfe2127cc45333.tar.gz
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
Diffstat (limited to 'gcc/testsuite/gcc.dg/c90-left-shift-1.c')
-rw-r--r--gcc/testsuite/gcc.dg/c90-left-shift-1.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/gcc/testsuite/gcc.dg/c90-left-shift-1.c b/gcc/testsuite/gcc.dg/c90-left-shift-1.c
new file mode 100644
index 00000000000..755595f5c27
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/c90-left-shift-1.c
@@ -0,0 +1,12 @@
+/* { dg-do compile } */
+/* { dg-options "-std=iso9899:1990 -pedantic-errors" } */
+
+enum E { A = -2 << 1 };
+int i = -1 << 0;
+
+int
+f (int i)
+{
+ switch (i)
+ case -1 << 0: break;
+}