From: Sven Linker sven.linker@kernkonzept.com
Dynamic exception specification using `throw()` is deprecated since C++11 and removed in C++17. This change replaces `throw()` with `noexcept` when compiling for newer standards.
Co-authored-by: Sven Linker sven.linker@kernkonzept.com --- include/sys/cdefs.h | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-)
diff --git a/include/sys/cdefs.h b/include/sys/cdefs.h index 5c4daebcd..9b3a02177 100644 --- a/include/sys/cdefs.h +++ b/include/sys/cdefs.h @@ -58,9 +58,15 @@ # define __NTH(fct) __attribute__ ((__nothrow__ __LEAF)) fct # else # if defined __cplusplus && __GNUC_PREREQ (2,8) -# define __THROW throw () -# define __THROWNL throw () -# define __NTH(fct) __LEAF_ATTR fct throw () +/* Dynamic exception specification is deprecated since C++11, so + we only use it when compiling for an earlier standard. */ +# if __cplusplus < 201103UL +# define __THROW throw () +# else +# define __THROW noexcept +# endif +# define __THROWNL __THROW +# define __NTH(fct) __LEAF_ATTR fct __THROW # else # define __THROW # define __THROWNL