Switch OPENSSL_COMPILE_ASSERT to static_assert in C++ code.
Clang for Windows does not like OPENSSL_COMPILE_ASSERT inside a function
in C++. It complains that the struct is unused. I think we worked around
this in C previously by making it expand to C11 _Static_assert when
available.
But libssl is now C++ and assumes a C++11-capable compiler. Use real
static_assert.
Bug: 132
Change-Id: I6aceb95360244bd2c80d194b80676483abb60519
Reviewed-on: https://boringssl-review.googlesource.com/17924
Reviewed-by: Adam Langley <agl@google.com>
diff --git a/ssl/t1_lib.cc b/ssl/t1_lib.cc
index fb0c8dd..76469eb 100644
--- a/ssl/t1_lib.cc
+++ b/ssl/t1_lib.cc
@@ -121,7 +121,6 @@
#include <openssl/mem.h>
#include <openssl/nid.h>
#include <openssl/rand.h>
-#include <openssl/type_check.h>
#include "internal.h"
#include "../crypto/internal.h"
@@ -2639,12 +2638,12 @@
#define kNumExtensions (sizeof(kExtensions) / sizeof(struct tls_extension))
-OPENSSL_COMPILE_ASSERT(kNumExtensions <=
- sizeof(((SSL_HANDSHAKE *)NULL)->extensions.sent) * 8,
- too_many_extensions_for_sent_bitset);
-OPENSSL_COMPILE_ASSERT(
- kNumExtensions <= sizeof(((SSL_HANDSHAKE *)NULL)->extensions.received) * 8,
- too_many_extensions_for_received_bitset);
+static_assert(kNumExtensions <=
+ sizeof(((SSL_HANDSHAKE *)NULL)->extensions.sent) * 8,
+ "too many extensions for sent bitset");
+static_assert(kNumExtensions <=
+ sizeof(((SSL_HANDSHAKE *)NULL)->extensions.received) * 8,
+ "too many extensions for received bitset");
static const struct tls_extension *tls_extension_find(uint32_t *out_index,
uint16_t value) {
@@ -2960,8 +2959,8 @@
continue;
}
- OPENSSL_COMPILE_ASSERT(kNumExtensions <= sizeof(hs->extensions.sent) * 8,
- too_many_bits);
+ static_assert(kNumExtensions <= sizeof(hs->extensions.sent) * 8,
+ "too many bits");
if (!(hs->extensions.sent & (1u << ext_index)) &&
type != TLSEXT_TYPE_renegotiate) {
@@ -3486,9 +3485,9 @@
return -1;
}
- OPENSSL_COMPILE_ASSERT(
+ static_assert(
sizeof(hs->new_session->original_handshake_hash) == EVP_MAX_MD_SIZE,
- original_handshake_hash_is_too_small);
+ "original_handshake_hash is too small");
size_t digest_len;
if (!SSL_TRANSCRIPT_get_hash(&hs->transcript,
@@ -3497,7 +3496,8 @@
return -1;
}
- OPENSSL_COMPILE_ASSERT(EVP_MAX_MD_SIZE <= 0xff, max_md_size_is_too_large);
+ static_assert(EVP_MAX_MD_SIZE <= 0xff,
+ "EVP_MAX_MD_SIZE does not fit in uint8_t");
hs->new_session->original_handshake_hash_len = (uint8_t)digest_len;
return 1;