Fix and/or annotate all switch fall-throughs.
In some configurations, Clang will warn about all unannotated
fall-throughs in C++. This change adds the needed annotation for Clang
in the single place where we appear to have this.
Change-Id: I25a9069e659ce278d3cd24bf46f667324b3d5146
Reviewed-on: https://boringssl-review.googlesource.com/18024
Commit-Queue: Adam Langley <agl@google.com>
Commit-Queue: David Benjamin <davidben@google.com>
Reviewed-by: David Benjamin <davidben@google.com>
diff --git a/ssl/internal.h b/ssl/internal.h
index 6b88070..ba98783 100644
--- a/ssl/internal.h
+++ b/ssl/internal.h
@@ -2373,6 +2373,16 @@
void ssl_reset_error_state(SSL *ssl);
+/* Utility macros */
+
+#if defined(__clang__)
+/* SSL_FALLTHROUGH annotates a fallthough case in a switch statement. */
+#define SSL_FALLTHROUGH [[clang::fallthrough]]
+#else
+#define SSL_FALLTHROUGH
+#endif
+
+
#if defined(__cplusplus)
} /* extern C */
#endif
diff --git a/ssl/ssl_cert.cc b/ssl/ssl_cert.cc
index df4b9c8..a410aef 100644
--- a/ssl/ssl_cert.cc
+++ b/ssl/ssl_cert.cc
@@ -593,6 +593,7 @@
break;
case -2:
OPENSSL_PUT_ERROR(X509, X509_R_UNKNOWN_KEY_TYPE);
+ break;
default:
assert(0);
break;
diff --git a/ssl/tls13_both.cc b/ssl/tls13_both.cc
index 763dc0e..83ff78a 100644
--- a/ssl/tls13_both.cc
+++ b/ssl/tls13_both.cc
@@ -53,7 +53,7 @@
}
ssl->method->expect_flight(ssl);
hs->wait = ssl_hs_read_message;
- /* Fall-through. */
+ SSL_FALLTHROUGH;
}
case ssl_hs_read_message: {