From: Niclas Rosenvik Date: Tue, 20 Apr 2021 17:14:27 +0000 (+0200) Subject: Some compilers define __STDC_VERSION__ in c++ X-Git-Tag: openssl-3.0.0-alpha16~154 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=1f3b58d8413cfa3824e9c0a146dee6ceedbc367e;p=thirdparty%2Fopenssl.git Some compilers define __STDC_VERSION__ in c++ Some compilers(g++ on Solaris/Illumos) define __STDC__VERSION__ in c++ . This causes c++ code that uses openssl to break on these compilers since _Noreturn is not a keyword in c++ . CLA: trivial Reviewed-by: Richard Levitte Reviewed-by: Paul Dale Reviewed-by: Tomas Mraz (Merged from https://github.com/openssl/openssl/pull/14944) --- diff --git a/include/openssl/e_os2.h b/include/openssl/e_os2.h index 13420d99283..eb8c46d72ad 100644 --- a/include/openssl/e_os2.h +++ b/include/openssl/e_os2.h @@ -274,7 +274,8 @@ typedef unsigned __int64 uint64_t; # define ossl_inline inline # endif -# if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201112L +# if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201112L && \ + !defined(__cplusplus) # define ossl_noreturn _Noreturn # elif defined(__GNUC__) && __GNUC__ >= 2 # define ossl_noreturn __attribute__((noreturn))