From: hesiod Date: Wed, 18 May 2016 17:34:27 +0000 (-0400) Subject: Make OPENSSL_die as noreturn X-Git-Tag: OpenSSL_1_1_0-pre6~781 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=872759053b3990dac362c1fa561fc127e1de5924;p=oweals%2Fopenssl.git Make OPENSSL_die as noreturn Reviewed-by: Richard Levitte (Merged from https://github.com/openssl/openssl/pull/526) --- diff --git a/include/openssl/crypto.h b/include/openssl/crypto.h index 42ba57bb59..1162c71041 100644 --- a/include/openssl/crypto.h +++ b/include/openssl/crypto.h @@ -310,10 +310,10 @@ int CRYPTO_mem_leaks(BIO *bio); # endif /* die if we have to */ +ossl_noreturn void OPENSSL_die(const char *assertion, const char *file, int line); # if OPENSSL_API_COMPAT < 0x10100000L # define OpenSSLDie(f,l,a) OPENSSL_die((a),(f),(l)) # endif -void OPENSSL_die(const char *assertion, const char *file, int line); # define OPENSSL_assert(e) \ (void)((e) ? 0 : (OPENSSL_die("assertion failed: " #e, OPENSSL_FILE, OPENSSL_LINE), 1)) diff --git a/include/openssl/e_os2.h b/include/openssl/e_os2.h index c556e57ca9..1b1364dc0a 100644 --- a/include/openssl/e_os2.h +++ b/include/openssl/e_os2.h @@ -293,6 +293,14 @@ typedef unsigned __int64 uint64_t; # define ossl_inline inline # endif +# if __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 7) +# define ossl_noreturn __attribute__((noreturn)) +# elif defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201112L +# define ossl_noreturn _Noreturn +# else +# define ossl_noreturn +# endif + #ifdef __cplusplus } #endif