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

--- Comment #12 from Marek Polacek <mpolacek at gcc dot gnu.org> ---
Author: mpolacek
Date: Mon Jul 20 13:43:45 2015
New Revision: 225998

URL: https://gcc.gnu.org/viewcvs?rev=225998&root=gcc&view=rev
Log:
        PR c++/55095
        * c-common.c (c_fully_fold_internal): Warn about left shift overflows.
        Use EXPR_LOC_OR_LOC.
        (maybe_warn_shift_overflow): New function.
        * c-common.h (maybe_warn_shift_overflow): Declare.
        * c-opts.c (c_common_post_options): Set warn_shift_overflow.
        * c.opt (Wshift-overflow): New option.

        * c-typeck.c (digest_init): Pass OPT_Wpedantic to pedwarn_init.
        (build_binary_op): Warn about left shift overflows.

        * typeck.c (cp_build_binary_op): Warn about left shift overflows.

        * doc/invoke.texi: Document -Wshift-overflow and -Wshift-overflow=.

        * c-c++-common/Wshift-overflow-1.c: New test.
        * c-c++-common/Wshift-overflow-2.c: New test.
        * c-c++-common/Wshift-overflow-3.c: New test.
        * c-c++-common/Wshift-overflow-4.c: New test.
        * c-c++-common/Wshift-overflow-5.c: New test.
        * g++.dg/cpp1y/left-shift-1.C: New test.
        * gcc.dg/c90-left-shift-2.c: New test.
        * gcc.dg/c90-left-shift-3.c: New test.
        * gcc.dg/c99-left-shift-2.c: New test.
        * gcc.dg/c99-left-shift-3.c: New test.
        * gcc.dg/pr40501.c: Use -Wno-shift-overflow.
        * gcc.c-torture/execute/pr40386.c: Likewise.
        * gcc.dg/vect/pr33373.c: Likewise.
        * gcc.dg/vect/vect-shift-2-big-array.c: Likewise.
        * gcc.dg/vect/vect-shift-2.c: Likewise.

Added:
    trunk/gcc/testsuite/c-c++-common/Wshift-overflow-1.c
    trunk/gcc/testsuite/c-c++-common/Wshift-overflow-2.c
    trunk/gcc/testsuite/c-c++-common/Wshift-overflow-3.c
    trunk/gcc/testsuite/c-c++-common/Wshift-overflow-4.c
    trunk/gcc/testsuite/c-c++-common/Wshift-overflow-5.c
    trunk/gcc/testsuite/g++.dg/cpp1y/left-shift-1.C
    trunk/gcc/testsuite/gcc.dg/c90-left-shift-2.c
    trunk/gcc/testsuite/gcc.dg/c90-left-shift-3.c
    trunk/gcc/testsuite/gcc.dg/c99-left-shift-2.c
    trunk/gcc/testsuite/gcc.dg/c99-left-shift-3.c
Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/c-family/ChangeLog
    trunk/gcc/c-family/c-common.c
    trunk/gcc/c-family/c-common.h
    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.c-torture/execute/pr40386.c
    trunk/gcc/testsuite/gcc.dg/pr40501.c
    trunk/gcc/testsuite/gcc.dg/vect/pr33373.c
    trunk/gcc/testsuite/gcc.dg/vect/vect-shift-2-big-array.c
    trunk/gcc/testsuite/gcc.dg/vect/vect-shift-2.c

Reply via email to