https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65179

--- Comment #2 from Marek Polacek <mpolacek at gcc dot gnu.org> ---
Author: mpolacek
Date: Thu May  7 19:36:31 2015
New Revision: 222889

URL: https://gcc.gnu.org/viewcvs?rev=222889&root=gcc&view=rev
Log:
        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.

Added:
    trunk/gcc/testsuite/c-c++-common/Wshift-negative-value-1.c
    trunk/gcc/testsuite/c-c++-common/Wshift-negative-value-2.c
    trunk/gcc/testsuite/c-c++-common/Wshift-negative-value-3.c
    trunk/gcc/testsuite/c-c++-common/Wshift-negative-value-4.c
    trunk/gcc/testsuite/c-c++-common/Wshift-negative-value-5.c
    trunk/gcc/testsuite/c-c++-common/Wshift-negative-value-6.c
    trunk/gcc/testsuite/gcc.dg/c90-left-shift-1.c
    trunk/gcc/testsuite/gcc.dg/c99-left-shift-1.c
Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/c-family/ChangeLog
    trunk/gcc/c-family/c-common.c
    trunk/gcc/c-family/c-opts.c
    trunk/gcc/c-family/c.opt
    trunk/gcc/c/ChangeLog
    trunk/gcc/c/c-typeck.c
    trunk/gcc/cp/ChangeLog
    trunk/gcc/cp/typeck.c
    trunk/gcc/doc/invoke.texi
    trunk/gcc/testsuite/ChangeLog
    trunk/gcc/testsuite/gcc.dg/c99-const-expr-7.c

Reply via email to