]> git.ipfire.org Git - thirdparty/gcc.git/commit - gcc/c-family/c.opt
re PR c/60439 (No warning for case overflow in switch statement.)
authorMarek Polacek <mpolacek@gcc.gnu.org>
Tue, 3 Jun 2014 17:35:34 +0000 (17:35 +0000)
committerMarek Polacek <mpolacek@gcc.gnu.org>
Tue, 3 Jun 2014 17:35:34 +0000 (17:35 +0000)
commitfedfecef5e3e78daf0d970d8edb4ab33a167535c
tree91bf428ee9f7a6bf677d0b5faa7d6cf778b29135
parente4f36438a9dd49f88a9fb4006b481aeeda780255
re PR c/60439 (No warning for case overflow in switch statement.)

PR c/60439
* doc/invoke.texi: Document -Wswitch-bool.
* function.c (stack_protect_epilogue): Cast controlling expression of
the switch to int.
* gengtype.c (walk_type): Generate switch expression with its
controlling expression cast to int.
c/
* c-parser.c (c_parser_switch_statement): Pass explicit_cast_p to
c_start_case.
* c-tree.h (c_start_case): Update.
* c-typeck.c (c_start_case): Add new boolean parameter.  Warn if
switch condition has boolean value.
cp/
* semantics.c (finish_switch_cond): Warn if switch condition has
boolean value.
c-family/
* c.opt (Wswitch-bool): New option.
testsuite/
* c-c++-common/pr60439.c: New test.
* g++.dg/eh/scope1.C (f4): Add dg-warning.

From-SVN: r211194
15 files changed:
gcc/ChangeLog
gcc/c-family/ChangeLog
gcc/c-family/c.opt
gcc/c/ChangeLog
gcc/c/c-parser.c
gcc/c/c-tree.h
gcc/c/c-typeck.c
gcc/cp/ChangeLog
gcc/cp/semantics.c
gcc/doc/invoke.texi
gcc/function.c
gcc/gengtype.c
gcc/testsuite/ChangeLog
gcc/testsuite/c-c++-common/pr60439.c [new file with mode: 0644]
gcc/testsuite/g++.dg/eh/scope1.C