From 872759053b3990dac362c1fa561fc127e1de5924 Mon Sep 17 00:00:00 2001 From: hesiod Date: Wed, 18 May 2016 13:34:27 -0400 Subject: [PATCH] Make OPENSSL_die as noreturn Reviewed-by: Richard Levitte (Merged from https://github.com/openssl/openssl/pull/526) --- include/openssl/crypto.h | 2 +- include/openssl/e_os2.h | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) 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 -- 2.25.1