compiler: annotate or fix fall through cases in switch statements
authorIan Lance Taylor <ian@gcc.gnu.org>
Wed, 10 Aug 2016 18:56:35 +0000 (18:56 +0000)
committerIan Lance Taylor <ian@gcc.gnu.org>
Wed, 10 Aug 2016 18:56:35 +0000 (18:56 +0000)
    A new GCC warning, -Wimplicit-fallthrough, detected these three cases
    where a switch case falls through to another.  One of them looks like
    a bug, so I fixed it; the two other look like intended fall throughs
    so I just added a "fall through" comment to suppress the GCC warning.

    Bootstrapped and ran Go testsuite on x86_64-pc-linux-gnu.

    Reviewed-on: https://go-review.googlesource.com/26695

From-SVN: r239332

gcc/go/gofrontend/MERGE
gcc/go/gofrontend/escape.cc
gcc/go/gofrontend/expressions.cc

index 72d8f1e531c2978be4bef3062d66797b99930f72..68e414b4e8b1834ec827981e9c84b9a3ef474c14 100644 (file)
@@ -1,4 +1,4 @@
-8da2129a005cc1f44d4d993b0b7312b64c0d68a4
+5e05b7bc947231b4d5a8327bf63e2fa648e51dc7
 
 The first line of this file holds the git revision number of the last
 merge done from the gofrontend repository.
index 433477eec3bdac70241e2796ac600a084688b394..ee7fa0933447d8ac46488418bb95e6fdc81cf04c 100644 (file)
@@ -281,6 +281,7 @@ Node::op_format() const
                {
                case Runtime::PANIC:
                  op << "panic";
+                 break;
 
                case Runtime::APPEND:
                  op << "append";
@@ -1923,6 +1924,7 @@ Escape_analysis_assign::assign(Node* dst, Node* src)
            if (!e->type()->has_pointer())
              break;
          }
+         // Fall through.
 
        case Expression::EXPRESSION_CONVERSION:
        case Expression::EXPRESSION_TYPE_GUARD:
index 71a84c76b1dfcbf927bf6ea4560aa0e8bca50bfe..bdc14aa22080afbf172fdbfd6ac7f51627e6024f 100644 (file)
@@ -5767,6 +5767,7 @@ Binary_expression::do_get_backend(Translate_context* context)
     case OPERATOR_DIV:
       if (left_type->float_type() != NULL || left_type->complex_type() != NULL)
         break;
+      // Fall through.
     case OPERATOR_MOD:
       is_idiv_op = true;
       break;