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

--- Comment #8 from Marek Polacek <mpolacek at gcc dot gnu.org> ---
Author: mpolacek
Date: Mon Jun 29 13:12:44 2015
New Revision: 225116

URL: https://gcc.gnu.org/viewcvs?rev=225116&root=gcc&view=rev
Log:
        PR c/66322
        * c-common.c (check_case_bounds): Add bool * parameter.  Set
        OUTSIDE_RANGE_P.
        (c_add_case_label): Add bool * parameter.  Pass it down to
        check_case_bounds.
        (c_do_switch_warnings): Add bool parameters.  Implement -Wswitch-bool
        warning here.
        * c-common.h (c_add_case_label, c_do_switch_warnings): Update
        declarations.

        * c-typeck.c (struct c_switch): Add BOOL_COND_P and OUTSIDE_RANGE_P.
        (c_start_case): Set BOOL_COND_P and OUTSIDE_RANGE_P.  Don't warn
        about -Wswitch-bool here.
        (do_case): Update c_add_case_label call.
        (c_finish_case): Update c_do_switch_warnings call.

        * decl.c (struct cp_switch): Add OUTSIDE_RANGE_P.
        (push_switch): Set OUTSIDE_RANGE_P.
        (pop_switch): Update c_do_switch_warnings call.
        (finish_case_label): Update c_add_case_label call.
        * semantics.c (finish_switch_cond): Don't warn about -Wswitch-bool
        here.

        * function.c (stack_protect_epilogue): Remove a cast to int.
        * doc/invoke.texi: Update -Wswitch-bool description.

        * c-c++-common/pr60439.c: Add dg-prune-output and add switch cases.
        * c-c++-common/pr66322.c: New test.
        * g++.dg/eh/scope1.C: Remove dg-warning.

Added:
    trunk/gcc/testsuite/c-c++-common/pr66322.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/ChangeLog
    trunk/gcc/c/c-typeck.c
    trunk/gcc/cp/ChangeLog
    trunk/gcc/cp/decl.c
    trunk/gcc/cp/semantics.c
    trunk/gcc/doc/invoke.texi
    trunk/gcc/function.c
    trunk/gcc/testsuite/ChangeLog
    trunk/gcc/testsuite/c-c++-common/pr60439.c
    trunk/gcc/testsuite/g++.dg/eh/scope1.C

Reply via email to