From 1f3b58d8413cfa3824e9c0a146dee6ceedbc367e Mon Sep 17 00:00:00 2001 From: Niclas Rosenvik Date: Tue, 20 Apr 2021 19:14:27 +0200 Subject: [PATCH] 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) --- include/openssl/e_os2.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) 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)) -- 2.47.2