From 9827836ce5c6cf648a37202f7d5eb73af1667466 Mon Sep 17 00:00:00 2001 From: Sven Linker Date: Tue, 9 Jul 2024 10:03:59 +0200 Subject: c++: Remove deprecated dynamic exception specification 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 Signed-off-by: Marcus Haehnel --- 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 -- cgit v1.2.3