From: Sven Linker <[email protected]>

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 <[email protected]>
Signed-off-by: Marcus Haehnel <[email protected]>
---
 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.45.2

_______________________________________________
devel mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to