diff --git a/src/dtls13.c b/src/dtls13.c index aa630d3d5..d6e1d3d23 100644 --- a/src/dtls13.c +++ b/src/dtls13.c @@ -71,7 +71,7 @@ typedef struct Dtls13HandshakeHeader { byte fragmentLength[3]; } Dtls13HandshakeHeader; -static_assert(sizeof(Dtls13HandshakeHeader) == DTLS13_HANDSHAKE_HEADER_SZ); +wc_static_assert(sizeof(Dtls13HandshakeHeader) == DTLS13_HANDSHAKE_HEADER_SZ); /** * struct Dtls13Recordplaintextheader: represent header of unprotected DTLSv1.3 diff --git a/wolfcrypt/test/test.c b/wolfcrypt/test/test.c index 62c9f16fd..544abc784 100644 --- a/wolfcrypt/test/test.c +++ b/wolfcrypt/test/test.c @@ -841,11 +841,11 @@ static void render_error_message(const char* msg, wc_test_ret_t es) * stores an error string in the supplied buffer. this is all most * infelicitous... */ -#if !defined(STRING_USER) && !defined(NO_ERROR_STRINGS) && \ +#if !defined(STRING_USER) && !defined(NO_ERROR_STRINGS) && \ (defined(__STDC_VERSION__) && (__STDC_VERSION__ > 199901L)) && \ - ((defined(__GLIBC__) && (__GLIBC__ >= 2)) || \ - (defined(__USE_XOPEN2K) && \ - defined(_POSIX_C_SOURCE) && \ + ((defined(__GLIBC__) && (__GLIBC__ >= 2) && defined(__USE_GNU)) || \ + (defined(__USE_XOPEN2K) && \ + defined(_POSIX_C_SOURCE) && \ (_POSIX_C_SOURCE >= 200112L))) char errno_buf[64], *errno_string; diff --git a/wolfssl/wolfcrypt/settings.h b/wolfssl/wolfcrypt/settings.h index 952b72659..2ed7647d6 100644 --- a/wolfssl/wolfcrypt/settings.h +++ b/wolfssl/wolfcrypt/settings.h @@ -20,24 +20,17 @@ */ /* - * ************************************************************************ + * Note, this file should not be edited to activate/deactivate features. * - * ******************************** NOTICE ******************************** - * - * ************************************************************************ - * - * This method of uncommenting a line in settings.h is outdated. - * - * Please use user_settings.h / WOLFSSL_USER_SETTINGS + * Instead, add/edit user_settings.h, and compile with -DWOLFSSL_USER_SETTINGS * * or * - * ./configure CFLAGS="-DFLAG" + * ./configure CFLAGS="-DFEATURE_FLAG_TO_DEFINE -UFEATURE_FLAG_TO_CLEAR [...]" * * For more information see: * * https://www.wolfssl.com/how-do-i-manage-the-build-configuration-of-wolfssl/ - * */ diff --git a/wolfssl/wolfcrypt/types.h b/wolfssl/wolfcrypt/types.h index 217772297..d5490c0e7 100644 --- a/wolfssl/wolfcrypt/types.h +++ b/wolfssl/wolfcrypt/types.h @@ -1693,15 +1693,22 @@ typedef struct w64wrapper { #define PRAGMA_DIAG_POP /* null expansion */ #endif - #define WC_CPP_CAT_(a, b) a ## b - #define WC_CPP_CAT(a, b) WC_CPP_CAT_(a, b) - #if (defined(__cplusplus) && (__cplusplus >= 201103L)) || \ - (defined(_MSVC_LANG) && (_MSVC_LANG >= 201103L)) - #ifndef static_assert2 - #define static_assert2 static_assert - #endif - #elif !defined(static_assert) - #if !defined(__cplusplus) && \ + #ifndef wc_static_assert + #if (defined(__cplusplus) && (__cplusplus >= 201703L)) || \ + (defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 202311L)) || \ + (defined(_MSVC_LANG) && (_MSVC_LANG >= 201103L)) + /* directly usable variadic declaration */ + #define wc_static_assert static_assert + #ifndef wc_static_assert2 + #define wc_static_assert2 static_assert + #endif + #elif defined(_MSC_VER) && (__STDC_VERSION__ >= 201112L) + /* native 2-argument static_assert() */ + #define wc_static_assert(expr) static_assert(expr, #expr) + #ifndef wc_static_assert2 + #define wc_static_assert2(expr, msg) static_assert(expr, msg) + #endif + #elif !defined(__cplusplus) && \ !defined(__STRICT_ANSI__) && \ !defined(WOLF_C89) && \ defined(__STDC_VERSION__) && \ @@ -1709,19 +1716,20 @@ typedef struct w64wrapper { ((defined(__GNUC__) && \ (__GNUC__ >= 5)) || \ defined(__clang__)) - #define static_assert(expr) _Static_assert(expr, #expr) - #ifndef static_assert2 - #define static_assert2(expr, msg) _Static_assert(expr, msg) + /* native 2-argument _Static_assert() */ + #define wc_static_assert(expr) _Static_assert(expr, #expr) + #ifndef wc_static_assert2 + #define wc_static_assert2(expr, msg) _Static_assert(expr, msg) #endif #else - #define static_assert(expr) \ - struct WC_CPP_CAT(wc_dummy_struct_L, __LINE__) - #ifndef static_assert2 - #define static_assert2(expr, msg) static_assert(expr) + /* fallback -- map wc_static_assert*() to do-nothing. */ + #define wc_static_assert(expr) struct wc_static_assert_dummy_struct + #ifndef wc_static_assert2 + #define wc_static_assert2(expr, msg) wc_static_assert(expr) #endif #endif - #elif !defined(static_assert2) - #define static_assert2(expr, msg) static_assert(expr) + #elif !defined(wc_static_assert2) + #define wc_static_assert2(expr, msg) wc_static_assert(expr) #endif #ifndef SAVE_VECTOR_REGISTERS