[PATCH] c++: Remove deprecated dynamic exception specification

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 -- 2.43.0
participants (1)
-
Marcus Haehnel