On Thu, Sep 01, 2016 at 04:27:01PM +0200, Jakub Jelinek wrote:
> On Thu, Sep 01, 2016 at 03:42:12PM +0200, Marek Polacek wrote:
> > --- gcc/gcc/c-family/c-common.c
> > +++ gcc/gcc/c-family/c-common.c
> > @@ -11590,6 +11590,7 @@ resolve_overloaded_builtin (location_t loc, tree 
> > function,
> >         gcc_unreachable ();
> >     }
> >     /* Fallthrough to the normal processing.  */
> > +   gcc_fallthrough ();
> >        }
> >      case BUILT_IN_ATOMIC_EXCHANGE_N:
> >      case BUILT_IN_ATOMIC_COMPARE_EXCHANGE_N:
> > @@ -11598,6 +11599,7 @@ resolve_overloaded_builtin (location_t loc, tree 
> > function,
> >        {
> >     fetch_op = false;
> >     /* Fallthrough to further processing.  */
> > +   gcc_fallthrough ();
> >        }
> >      case BUILT_IN_ATOMIC_ADD_FETCH_N:
> >      case BUILT_IN_ATOMIC_SUB_FETCH_N:
> > @@ -11614,6 +11616,7 @@ resolve_overloaded_builtin (location_t loc, tree 
> > function,
> >        {
> >          orig_format = false;
> >     /* Fallthru for parameter processing.  */
> > +   gcc_fallthrough ();
> >        }
> 
> These 3 look just like misformatted stuff, {}s around for no reason
> whatsoever, the first case even badly indented and the latter two with a
> single stmt inside of {}.
> I think it would be better to just remove the useless outer {} pair
> in all the cases, reindent and replace the comments with /* FALLTHRU */
 
Ok, fixed.

> > diff --git gcc/gcc/c/c-typeck.c gcc/gcc/c/c-typeck.c
> > index 5194027..e89bdc8 100644
> > --- gcc/gcc/c/c-typeck.c
> > +++ gcc/gcc/c/c-typeck.c
> > @@ -605,7 +605,7 @@ composite_type (tree t1, tree t2)
> >  
> >     t1 = build_function_type (valtype, newargs);
> >     t1 = qualify_type (t1, t2);
> > -   /* ... falls through ...  */
> > +   gcc_fallthrough ();
> >        }
> 
> One option for here (other than removing the {}s, which would require
> separate var declarations from their assignments) would be to just do:
> -     /* ... falls through ...  */
>        }
> +      /* FALLTHRU */

Done. 

> > diff --git gcc/gcc/config/rs6000/rs6000.c gcc/gcc/config/rs6000/rs6000.c
> > index 2f15a05..c25314e 100644
> > --- gcc/gcc/config/rs6000/rs6000.c
> > +++ gcc/gcc/config/rs6000/rs6000.c
> > @@ -5489,7 +5489,7 @@ rs6000_builtin_vectorized_libmass (combined_fn fn, 
> > tree type_out,
> >      CASE_CFN_HYPOT:
> >      CASE_CFN_POW:
> >        n_args = 2;
> > -      /* fall through */
> > +      gcc_fallthrough ();
> >  
> >      CASE_CFN_ACOS:
> >      CASE_CFN_ACOSH:
> 
> This is needed becase CSE_CFN_ACOS is a macro, right?  I guess it is fine.

Yes, exactly.

> > --- gcc/gcc/cp/error.c
> > +++ gcc/gcc/cp/error.c
> > @@ -576,6 +576,7 @@ dump_type (cxx_pretty_printer *pp, tree t, int flags)
> >      default:
> >        pp_unsupported_tree (pp, t);
> >        /* Fall through to error.  */
> > +      gcc_fallthrough ();
> >  
> >      case ERROR_MARK:
> >        pp_string (pp, M_("<type error>"));
> > @@ -1277,6 +1278,7 @@ dump_decl (cxx_pretty_printer *pp, tree t, int flags)
> >      default:
> >        pp_unsupported_tree (pp, t);
> >        /* Fall through to error.  */
> > +      gcc_fallthrough ();
> >  
> >      case ERROR_MARK:
> >        pp_string (pp, M_("<declaration error>"));
> > @@ -2778,6 +2780,7 @@ dump_expr (cxx_pretty_printer *pp, tree t, int flags)
> >      default:
> >        pp_unsupported_tree (pp, t);
> >        /* fall through to ERROR_MARK...  */
> > +      gcc_fallthrough ();
> 
> Why the above ones?  Replacing the comments with /* FALLTHRU */ would be
> sufficient IMHO.  Or is there any value in explaining why it falls through?

I thought I'd keep it since it conveys something more than a pure "falls
through" comments, but I changed it anyway.  Here's the pure comment
changes patch which I hope can be committed right away.

2016-09-01  Marek Polacek  <pola...@redhat.com>

        PR c/7652
gcc/c-family/
        * c-common.c (resolve_overloaded_builtin): Fix formatting.  Add
        FALLTHRU comments.
gcc/c/
        * c-typeck.c (composite_type): Add FALLTHRU comment.
gcc/gcc/cp/
        * error.c (dump_type): Fix falls through comment.
        (dump_decl): Likewise.
        (dump_expr): Likewise.

diff --git gcc/gcc/c-family/c-common.c gcc/gcc/c-family/c-common.c
index b29334a..399ba97 100644
--- gcc/gcc/c-family/c-common.c
+++ gcc/gcc/c-family/c-common.c
@@ -11547,7 +11547,7 @@ resolve_overloaded_builtin (location_t loc, tree 
function,
        /* Handle these 4 together so that they can fall through to the next
           case if the call is transformed to an _N variant.  */
         switch (orig_code)
-       {
+         {
          case BUILT_IN_ATOMIC_EXCHANGE:
            {
              if (resolve_overloaded_atomic_exchange (loc, function, params,
@@ -11588,17 +11588,15 @@ resolve_overloaded_builtin (location_t loc, tree 
function,
            }
          default:
            gcc_unreachable ();
-       }
-       /* Fallthrough to the normal processing.  */
+         }
       }
+      /* FALLTHRU */
     case BUILT_IN_ATOMIC_EXCHANGE_N:
     case BUILT_IN_ATOMIC_COMPARE_EXCHANGE_N:
     case BUILT_IN_ATOMIC_LOAD_N:
     case BUILT_IN_ATOMIC_STORE_N:
-      {
-       fetch_op = false;
-       /* Fallthrough to further processing.  */
-      }
+      fetch_op = false;
+      /* FALLTHRU */
     case BUILT_IN_ATOMIC_ADD_FETCH_N:
     case BUILT_IN_ATOMIC_SUB_FETCH_N:
     case BUILT_IN_ATOMIC_AND_FETCH_N:
@@ -11611,10 +11609,8 @@ resolve_overloaded_builtin (location_t loc, tree 
function,
     case BUILT_IN_ATOMIC_FETCH_NAND_N:
     case BUILT_IN_ATOMIC_FETCH_XOR_N:
     case BUILT_IN_ATOMIC_FETCH_OR_N:
-      {
-        orig_format = false;
-       /* Fallthru for parameter processing.  */
-      }
+      orig_format = false;
+      /* FALLTHRU */
     case BUILT_IN_SYNC_FETCH_AND_ADD_N:
     case BUILT_IN_SYNC_FETCH_AND_SUB_N:
     case BUILT_IN_SYNC_FETCH_AND_OR_N:
diff --git gcc/gcc/c/c-typeck.c gcc/gcc/c/c-typeck.c
index 5194027..fc7a71e 100644
--- gcc/gcc/c/c-typeck.c
+++ gcc/gcc/c/c-typeck.c
@@ -605,8 +605,8 @@ composite_type (tree t1, tree t2)
 
        t1 = build_function_type (valtype, newargs);
        t1 = qualify_type (t1, t2);
-       /* ... falls through ...  */
       }
+      /* FALLTHRU */
 
     default:
       return build_type_attribute_variant (t1, attributes);
diff --git gcc/gcc/cp/error.c gcc/gcc/cp/error.c
index 58cd48c..88049ee 100644
--- gcc/gcc/cp/error.c
+++ gcc/gcc/cp/error.c
@@ -575,7 +575,7 @@ dump_type (cxx_pretty_printer *pp, tree t, int flags)
 
     default:
       pp_unsupported_tree (pp, t);
-      /* Fall through to error.  */
+      /* Fall through.  */
 
     case ERROR_MARK:
       pp_string (pp, M_("<type error>"));
@@ -1276,7 +1276,7 @@ dump_decl (cxx_pretty_printer *pp, tree t, int flags)
 
     default:
       pp_unsupported_tree (pp, t);
-      /* Fall through to error.  */
+      /* Fall through.  */
 
     case ERROR_MARK:
       pp_string (pp, M_("<declaration error>"));
@@ -2777,7 +2777,7 @@ dump_expr (cxx_pretty_printer *pp, tree t, int flags)
          `report_error_function'.  That could cause an infinite loop.  */
     default:
       pp_unsupported_tree (pp, t);
-      /* fall through to ERROR_MARK...  */
+      /* Fall through.  */
     case ERROR_MARK:
       pp_string (pp, M_("<expression error>"));
       break;

        Marek

Reply via email to