https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77750
--- Comment #3 from louis.krupp at zoho dot com --- I agree. But in the interests of reporting the bug and proposing a patch as soon as possible, I decided to minimize the risk of unintended consequences by keeping things as simple as I could. If you like, I could follow your suggestions and clean this up and check it in, but I wouldn't be able to do it tonight. I believe I'm an hour ahead of you, and I've learned that when I try to do things in a hurry, I usually regret it. Louis ---- On Tue, 27 Sep 2016 00:38:29 -0700 pinskia at gcc dot gnu.org <gcc-bugzi...@gcc.gnu.org> wrote ---- > https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77750 > > --- Comment #1 from Andrew Pinski <pinskia at gcc dot gnu.org> --- > Comment on attachment 39694 > --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=39694 > Possible patch (correctly formatted magic "fall through" comments) > > >Index: gcc/combine.c > >=================================================================== > >--- gcc/combine.c (revision 240520) > >+++ gcc/combine.c (working copy) > >@@ -11370,6 +11370,8 @@ simplify_compare_const (enum rtx_code code, machin > > else > > break; > > > >+ /* fall through. */ > >+ > > Yes this is correct but maybe it is better to rewrite this code slightly: > if (const_op <= 0) > break; > > const_op -= 1; > code = LE; > /* fall through. */ > > > > case LE: > > /* <= C is equivalent to < (C + 1); we do this for C < 0 */ > > if (const_op < 0) > >@@ -11399,6 +11401,8 @@ simplify_compare_const (enum rtx_code code, machin > > else > > break; > > > >+ /* fall through. */ > > Likewise. > > >+ > > case GT: > > /* > C is equivalent to >= (C + 1); we do this for C < 0. */ > > if (const_op < 0) > >@@ -11927,7 +11931,7 @@ simplify_comparison (enum rtx_code code, rtx *pop0 > > else > > break; > > > >- /* ... fall through ... */ > >+ /* fall through. */ > > Likewise. > > > > > case ZERO_EXTEND: > > mode = GET_MODE (XEXP (op0, 0)); > >@@ -12339,7 +12343,8 @@ simplify_comparison (enum rtx_code code, rtx *pop0 > > continue; > > } > > > >- /* ... fall through ... */ > >+ /* fall through. */ > > Do something similar: > /* If the inner mode is narrower and we are extracting the low part, > we can treat the SUBREG as if it were a ZERO_EXTEND. */ > if (!subreg_lowpart_p (op0) > &|| GET_MODE_PRECISION (GET_MODE (SUBREG_REG (op0))) >= > mode_width) > break; > > /* fall through */ > > > >+ > > case LSHIFTRT: > > /* If we have (compare (xshiftrt FOO N) (const_int C)) and > > the low order N bits of FOO are known to be zero, we can do this > >Index: gcc/fold-const.c > >=================================================================== > >--- gcc/fold-const.c (revision 240520) > >+++ gcc/fold-const.c (working copy) > >@@ -6284,7 +6284,7 @@ extract_muldiv_1 (tree t, tree c, enum tree_code c > > return omit_one_operand (type, integer_zero_node, op0); > > } > > > >- /* ... fall through ... */ > >+ /* fall through. */ > > This one is obvious. > > > > > case TRUNC_DIV_EXPR: case CEIL_DIV_EXPR: case FLOOR_DIV_EXPR: > > case ROUND_DIV_EXPR: case EXACT_DIV_EXPR: > > -- > You are receiving this mail because: > You reported the bug.