Fix build with -Wmissing-field-initializers
Since it's otherwise pretty tedious, let's try this with C99 designated
initializers. From testing, I remember they worked pretty reliably in C.
(In C++, it's a little trickier because MSVC won't accept them outside
C++20. Although I think all our supported MSVCs have a C++20 mode
now...)
Fixed: 671
Change-Id: Ia29ade8721ecfe2140a2d183ad60c8a730c631f0
Reviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/64447
Auto-Submit: David Benjamin <davidben@google.com>
Reviewed-by: Bob Beck <bbe@google.com>
Commit-Queue: David Benjamin <davidben@google.com>
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 2c2eb88..4c7926d 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -139,8 +139,7 @@
if(CMAKE_COMPILER_IS_GNUCXX OR CLANG)
# Note clang-cl is odd and sets both CLANG and MSVC. We base our configuration
# primarily on our normal Clang one.
- # TODO(bbe) took out -Wmissing-field-initializers for pki - fix and put back or disable only for pki
- set(C_CXX_FLAGS "-Werror -Wformat=2 -Wsign-compare -Wwrite-strings -Wvla -Wshadow -Wtype-limits")
+ set(C_CXX_FLAGS "-Werror -Wformat=2 -Wsign-compare -Wwrite-strings -Wvla -Wshadow -Wtype-limits -Wmissing-field-initializers")
if(MSVC)
# clang-cl sets different default warnings than clang. It also treats -Wall
# as -Weverything, to match MSVC. Instead -W3 is the alias for -Wall.
diff --git a/crypto/x509/x509_vpm.c b/crypto/x509/x509_vpm.c
index 73b6916..dc59c15 100644
--- a/crypto/x509/x509_vpm.c
+++ b/crypto/x509/x509_vpm.c
@@ -434,36 +434,27 @@
}
static const X509_VERIFY_PARAM kDefaultParam = {
- /*check_time=*/0,
- /*inh_flags=*/0,
- /*flags=*/X509_V_FLAG_TRUSTED_FIRST,
- /*purpose=*/0,
- /*trust=*/0,
- /*depth=*/100};
+ .flags = X509_V_FLAG_TRUSTED_FIRST,
+ .depth = 100,
+};
static const X509_VERIFY_PARAM kSMIMESignParam = {
- /*check_time=*/0,
- /*inh_flags=*/0,
- /*flags=*/0,
- /*purpose=*/X509_PURPOSE_SMIME_SIGN,
- /*trust=*/X509_TRUST_EMAIL,
- /*depth=*/-1};
+ .purpose = X509_PURPOSE_SMIME_SIGN,
+ .trust = X509_TRUST_EMAIL,
+ .depth = -1,
+};
static const X509_VERIFY_PARAM kSSLClientParam = {
- /*check_time=*/0,
- /*inh_flags=*/0,
- /*flags=*/0,
- /*purpose=*/X509_PURPOSE_SSL_CLIENT,
- /*trust=*/X509_TRUST_SSL_CLIENT,
- /*depth=*/-1};
+ .purpose = X509_PURPOSE_SSL_CLIENT,
+ .trust = X509_TRUST_SSL_CLIENT,
+ .depth = -1,
+};
static const X509_VERIFY_PARAM kSSLServerParam = {
- /*check_time=*/0,
- /*inh_flags=*/0,
- /*flags=*/0,
- /*purpose=*/X509_PURPOSE_SSL_SERVER,
- /*trust=*/X509_TRUST_SSL_SERVER,
- /*depth=*/-1};
+ .purpose = X509_PURPOSE_SSL_SERVER,
+ .trust = X509_TRUST_SSL_SERVER,
+ .depth = -1,
+};
const X509_VERIFY_PARAM *X509_VERIFY_PARAM_lookup(const char *name) {
if (strcmp(name, "default") == 0) {