https://gcc.gnu.org/bugzilla/show_bug.cgi?id=18046
--- Comment #19 from Patrick Palka <ppalka at gcc dot gnu.org> --- Author: ppalka Date: Tue Jul 26 15:19:58 2016 New Revision: 238761 URL: https://gcc.gnu.org/viewcvs?rev=238761&root=gcc&view=rev Log: Teach VRP to register assertions along default switch labels (PR18046) gcc/ChangeLog: PR tree-optimization/18046 * genmodes.c (emit_mode_size_inline): Emit an assert that verifies that mode is a valid array index. (emit_mode_nuinits_inline): Likewise. (emit_mode_inner_inline): Likewise. (emit_mode_unit_size_inline): Likewise. (emit_mode_unit_precision_inline): Likewise. * tree-vrp.c: Include params.h. (find_switch_asserts): Register edge assertions for the default label which correspond to the anti-ranges of each case label. * params.def (PARAM_MAX_VRP_SWITCH_ASSERTIONS): New. * doc/invoke.texi: Document it. gcc/testsuite/ChangeLog: PR tree-optimization/18046 * gcc.dg/tree-ssa/ssa-dom-thread-6.c: Bump FSM count to 5. * gcc.dg/tree-ssa/vrp103.c: New test. * gcc.dg/tree-ssa/vrp104.c: New test. Added: trunk/gcc/testsuite/gcc.dg/tree-ssa/vrp103.c trunk/gcc/testsuite/gcc.dg/tree-ssa/vrp104.c Modified: trunk/gcc/ChangeLog trunk/gcc/doc/invoke.texi trunk/gcc/genmodes.c trunk/gcc/params.def trunk/gcc/testsuite/ChangeLog trunk/gcc/testsuite/gcc.dg/tree-ssa/ssa-dom-thread-6.c trunk/gcc/tree-vrp.c