diff --git a/include/__config b/include/__config index 3df583fd..530a3204 100644 --- a/include/__config +++ b/include/__config @@ -182,9 +182,9 @@ typedef __char32_t char32_t; #endif #if __has_feature(cxx_attributes) -# define _ATTRIBUTE(x) [[x]] +# define _LIBCPP_NORETURN [[noreturn]] #else -# define _ATTRIBUTE(x) __attribute__ ((x)) +# define _LIBCPP_NORETURN __attribute__ ((noreturn)) #endif #define _LIBCPP_HAS_NO_DEFAULTED_FUNCTIONS @@ -277,7 +277,7 @@ namespace std { #define _ALIGNAS(x) __attribute__((__aligned__(x))) -#define _ATTRIBUTE(x) __attribute__((x)) +#define _LIBCPP_NORETURN __attribute__((noreturn)) #if !__EXCEPTIONS #define _LIBCPP_NO_EXCEPTIONS @@ -349,7 +349,7 @@ using namespace _LIBCPP_NAMESPACE __attribute__((__strong__)); #define _LIBCPP_HAS_NO_UNICODE_CHARS #define _LIBCPP_HAS_NO_DELETED_FUNCTIONS #define __alignof__ __alignof -#define _ATTRIBUTE __declspec +#define _LIBCPP_NORETURN __declspec(noreturn) #define _ALIGNAS(x) __declspec(align(x)) #define _LIBCPP_HAS_NO_VARIADICS diff --git a/include/exception b/include/exception index f7c3b70b..2f527d90 100644 --- a/include/exception +++ b/include/exception @@ -107,19 +107,19 @@ public: typedef void (*unexpected_handler)(); _LIBCPP_VISIBLE unexpected_handler set_unexpected(unexpected_handler) _NOEXCEPT; _LIBCPP_VISIBLE unexpected_handler get_unexpected() _NOEXCEPT; -_ATTRIBUTE(noreturn) _LIBCPP_VISIBLE void unexpected(); +_LIBCPP_NORETURN _LIBCPP_VISIBLE void unexpected(); typedef void (*terminate_handler)(); _LIBCPP_VISIBLE terminate_handler set_terminate(terminate_handler) _NOEXCEPT; _LIBCPP_VISIBLE terminate_handler get_terminate() _NOEXCEPT; -_ATTRIBUTE(noreturn) _LIBCPP_VISIBLE void terminate() _NOEXCEPT; +_LIBCPP_NORETURN _LIBCPP_VISIBLE void terminate() _NOEXCEPT; _LIBCPP_VISIBLE bool uncaught_exception() _NOEXCEPT; class exception_ptr; exception_ptr current_exception() _NOEXCEPT; -_ATTRIBUTE(noreturn) void rethrow_exception(exception_ptr); +_LIBCPP_NORETURN void rethrow_exception(exception_ptr); class _LIBCPP_VISIBLE exception_ptr { @@ -143,7 +143,7 @@ public: {return !(__x == __y);} friend exception_ptr current_exception() _NOEXCEPT; - _ATTRIBUTE(noreturn) friend void rethrow_exception(exception_ptr); + _LIBCPP_NORETURN friend void rethrow_exception(exception_ptr); }; template @@ -174,7 +174,7 @@ public: virtual ~nested_exception() _NOEXCEPT; // access functions - _ATTRIBUTE(noreturn) void rethrow_nested() const; + _LIBCPP_NORETURN void rethrow_nested() const; _LIBCPP_INLINE_VISIBILITY exception_ptr nested_ptr() const _NOEXCEPT {return __ptr_;} }; @@ -187,7 +187,7 @@ struct __nested }; template -_ATTRIBUTE(noreturn) +_LIBCPP_NORETURN void #ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES throw_with_nested(_Tp&& __t, typename enable_if< @@ -206,7 +206,7 @@ throw_with_nested (_Tp& __t, typename enable_if< } template -_ATTRIBUTE(noreturn) +_LIBCPP_NORETURN void #ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES throw_with_nested(_Tp&& __t, typename enable_if< diff --git a/src/exception.cpp b/src/exception.cpp index a8ddcc46..0dbb6604 100644 --- a/src/exception.cpp +++ b/src/exception.cpp @@ -56,7 +56,7 @@ get_unexpected() _NOEXCEPT return __sync_fetch_and_add(&__unexpected_handler, (unexpected_handler)0); } -_ATTRIBUTE(noreturn) +_LIBCPP_NORETURN void unexpected() { @@ -77,7 +77,7 @@ get_terminate() _NOEXCEPT return __sync_fetch_and_add(&__terminate_handler, (terminate_handler)0); } -_ATTRIBUTE(noreturn) +_LIBCPP_NORETURN void terminate() _NOEXCEPT { @@ -184,7 +184,7 @@ nested_exception::~nested_exception() _NOEXCEPT { } -_ATTRIBUTE(noreturn) +_LIBCPP_NORETURN void nested_exception::rethrow_nested() const { @@ -209,7 +209,7 @@ exception_ptr current_exception() _NOEXCEPT #endif // __APPLE__ } -_ATTRIBUTE(noreturn) +_LIBCPP_NORETURN void rethrow_exception(exception_ptr p) { #if HAVE_DEPENDENT_EH_ABI