From da77d28dc287c7d60297e30d3876e559dbe3619e Mon Sep 17 00:00:00 2001 From: Bruno Haible Date: Sat, 23 Mar 2019 19:53:22 +0100 Subject: [PATCH] noreturn: In C++ mode with clang, use _Noreturn as fallback. Reported by Akim Demaille. * lib/noreturn.h (_GL_NORETURN_FUNC): In C++ mode with clang, when [[noreturn]] would not work, use _Noreturn instead. --- ChangeLog | 7 +++++++ lib/noreturn.h | 3 +++ 2 files changed, 10 insertions(+) diff --git a/ChangeLog b/ChangeLog index 457caa9ad9..14bdd0979d 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2019-03-23 Bruno Haible + + noreturn: In C++ mode with clang, use _Noreturn as fallback. + Reported by Akim Demaille. + * lib/noreturn.h (_GL_NORETURN_FUNC): In C++ mode with clang, when + [[noreturn]] would not work, use _Noreturn instead. + 2019-03-22 Akim Demaille libtextstyle-optional: Fix compiler warnings. diff --git a/lib/noreturn.h b/lib/noreturn.h index 3ceeaf5908..57e9a884bd 100644 --- a/lib/noreturn.h +++ b/lib/noreturn.h @@ -74,6 +74,9 @@ # if (__cplusplus >= 201103 && !(__GNUC__ == 4 && __GNUC_MINOR__ == 7)) \ || (_MSC_VER >= 1900) # define _GL_NORETURN_FUNC [[noreturn]] + /* clang++ supports the _Noreturn keyword, but g++ doesn't. */ +# elif defined __clang__ +# define _GL_NORETURN_FUNC _Noreturn # else # define _GL_NORETURN_FUNC /* empty */ # endif -- 2.39.5