Add default return statements to switch statements to appease GCC.
This CL follows the recipe recommendations at go/totw/147 for using exhaustive
switch statements, including a final default return (LOG(ERROR) skipped for
binary size considerations). The default return in particular is important for
satisfying Envoy's GCC builds.
PiperOrigin-RevId: 407385732
diff --git a/http2/adapter/header_validator.cc b/http2/adapter/header_validator.cc
index 7cf9220..0122018 100644
--- a/http2/adapter/header_validator.cc
+++ b/http2/adapter/header_validator.cc
@@ -92,9 +92,8 @@
return ValidateResponseHeaders(pseudo_headers_);
case HeaderType::RESPONSE_TRAILER:
return ValidateResponseTrailers(pseudo_headers_);
- default:
- return false;
}
+ return false;
}
} // namespace adapter
diff --git a/http2/adapter/http2_util.cc b/http2/adapter/http2_util.cc
index 138bde7..efca530 100644
--- a/http2/adapter/http2_util.cc
+++ b/http2/adapter/http2_util.cc
@@ -1,5 +1,7 @@
#include "http2/adapter/http2_util.h"
+#include "spdy/core/spdy_protocol.h"
+
namespace http2 {
namespace adapter {
namespace {
@@ -40,6 +42,7 @@
case Http2ErrorCode::HTTP_1_1_REQUIRED:
return spdy::ERROR_CODE_HTTP_1_1_REQUIRED;
}
+ return spdy::ERROR_CODE_INTERNAL_ERROR;
}
Http2ErrorCode TranslateErrorCode(spdy::SpdyErrorCode code) {
@@ -73,6 +76,7 @@
case spdy::ERROR_CODE_HTTP_1_1_REQUIRED:
return Http2ErrorCode::HTTP_1_1_REQUIRED;
}
+ return Http2ErrorCode::INTERNAL_ERROR;
}
absl::string_view ConnectionErrorToString(ConnectionError error) {
@@ -92,6 +96,7 @@
case ConnectionError::kInvalidPushPromise:
return "InvalidPushPromise";
}
+ return "UnknownConnectionError";
}
absl::string_view InvalidFrameErrorToString(
@@ -110,8 +115,7 @@
case InvalidFrameError::kStreamClosed:
return "StreamClosed";
}
- QUICHE_LOG(ERROR) << "Unknown InvalidFrameError " << static_cast<int>(error);
- return "UnknownError";
+ return "UnknownInvalidFrameError";
}
} // namespace adapter
diff --git a/http2/adapter/nghttp2_callbacks.cc b/http2/adapter/nghttp2_callbacks.cc
index 8564d6a..9e04158 100644
--- a/http2/adapter/nghttp2_callbacks.cc
+++ b/http2/adapter/nghttp2_callbacks.cc
@@ -178,10 +178,9 @@
return NGHTTP2_ERR_CALLBACK_FAILURE;
case Http2VisitorInterface::HEADER_RST_STREAM:
return NGHTTP2_ERR_TEMPORAL_CALLBACK_FAILURE;
- default:
- // Unexpected value.
- return NGHTTP2_ERR_TEMPORAL_CALLBACK_FAILURE;
}
+ // Unexpected value.
+ return NGHTTP2_ERR_TEMPORAL_CALLBACK_FAILURE;
}
int OnBeforeFrameSent(nghttp2_session* /* session */,
diff --git a/http2/adapter/nghttp2_util.cc b/http2/adapter/nghttp2_util.cc
index 65ee06b..2d0171c 100644
--- a/http2/adapter/nghttp2_util.cc
+++ b/http2/adapter/nghttp2_util.cc
@@ -139,7 +139,6 @@
case InvalidFrameError::kStreamClosed:
return NGHTTP2_ERR_STREAM_CLOSED;
}
- QUICHE_LOG(ERROR) << "Unknown InvalidFrameError " << static_cast<int>(error);
return NGHTTP2_ERR_PROTO;
}
@@ -158,7 +157,6 @@
case NGHTTP2_ERR_STREAM_CLOSED:
return InvalidFrameError::kStreamClosed;
}
- QUICHE_LOG(ERROR) << "Unknown error " << error;
return InvalidFrameError::kProtocol;
}
diff --git a/http2/adapter/oghttp2_session.cc b/http2/adapter/oghttp2_session.cc
index ed16f04..7c8790d 100644
--- a/http2/adapter/oghttp2_session.cc
+++ b/http2/adapter/oghttp2_session.cc
@@ -131,6 +131,7 @@
case Perspective::kServer:
return "OGHTTP2_SERVER";
}
+ return "OGHTTP2_SERVER";
}
class RunOnExit {
@@ -186,6 +187,7 @@
case SpdyFramerError::LAST_ERROR:
return Http2ErrorCode::INTERNAL_ERROR;
}
+ return Http2ErrorCode::INTERNAL_ERROR;
}
} // namespace