Fix preprocessor macro existence check in bignum.c

This commit is contained in:
Hanno Becker 2019-01-02 17:15:06 +00:00
parent 6dab6200c6
commit 9f6d16ad79

View File

@ -741,14 +741,19 @@ static mbedtls_mpi_uint mpi_uint_bigendian_to_host( mbedtls_mpi_uint x )
#if ( __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__ ) #if ( __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__ )
/* For GCC and Clang, have builtins for byte swapping. */ /* For GCC and Clang, have builtins for byte swapping. */
#if( defined(__GNUC__) && defined(__GNUC_PREREQ) && __GNUC_PREREQ(4,3) ) #if defined(__GNUC__) && defined(__GNUC_PREREQ)
#if __GNUC_PREREQ(4,3)
#define have_bswap #define have_bswap
#elif defined(__clang__) && \ #endif
defined(__has_builtin) && \ #endif
__has_builtin(__builtin_bswap32) && \
#if defined(__clang__) && defined(__has_builtin)
#if __has_builtin(__builtin_bswap32) && \
__has_builtin(__builtin_bswap64) __has_builtin(__builtin_bswap64)
#define have_bswap #define have_bswap
#endif #endif
#endif
#if defined(have_bswap) #if defined(have_bswap)
/* The compiler is hopefully able to statically evaluate this! */ /* The compiler is hopefully able to statically evaluate this! */
switch( sizeof(mbedtls_mpi_uint) ) switch( sizeof(mbedtls_mpi_uint) )