mirror of
https://github.com/llvm/llvm-project.git
synced 2025-04-18 12:26:50 +00:00
[libc++][NFC] Replace _LIBCPP_NORETURN and TEST_NORETURN with [[noreturn]] (#80455)
`[[__noreturn__]]` is now always available, so we can simply use the attribute directly instead of through a macro.
This commit is contained in:
parent
cd0e867756
commit
748023dc32
@ -44,7 +44,6 @@ AttributeMacros: [
|
||||
'_LIBCPP_NO_UNIQUE_ADDRESS',
|
||||
'_LIBCPP_NOALIAS',
|
||||
'_LIBCPP_NODISCARD',
|
||||
'_LIBCPP_NORETURN',
|
||||
'_LIBCPP_OVERRIDABLE_FUNC_VIS',
|
||||
'_LIBCPP_STANDALONE_DEBUG',
|
||||
'_LIBCPP_TEMPLATE_DATA_VIS',
|
||||
|
@ -71,7 +71,7 @@ private:
|
||||
};
|
||||
|
||||
template <class _Duration>
|
||||
_LIBCPP_NORETURN _LIBCPP_AVAILABILITY_TZDB _LIBCPP_HIDE_FROM_ABI void __throw_nonexistent_local_time(
|
||||
[[noreturn]] _LIBCPP_AVAILABILITY_TZDB _LIBCPP_HIDE_FROM_ABI void __throw_nonexistent_local_time(
|
||||
[[maybe_unused]] const local_time<_Duration>& __time, [[maybe_unused]] const local_info& __info) {
|
||||
# ifndef _LIBCPP_HAS_NO_EXCEPTIONS
|
||||
throw nonexistent_local_time(__time, __info);
|
||||
@ -115,7 +115,7 @@ private:
|
||||
};
|
||||
|
||||
template <class _Duration>
|
||||
_LIBCPP_NORETURN _LIBCPP_AVAILABILITY_TZDB _LIBCPP_HIDE_FROM_ABI void __throw_ambiguous_local_time(
|
||||
[[noreturn]] _LIBCPP_AVAILABILITY_TZDB _LIBCPP_HIDE_FROM_ABI void __throw_ambiguous_local_time(
|
||||
[[maybe_unused]] const local_time<_Duration>& __time, [[maybe_unused]] const local_info& __info) {
|
||||
# ifndef _LIBCPP_HAS_NO_EXCEPTIONS
|
||||
throw ambiguous_local_time(__time, __info);
|
||||
|
@ -312,7 +312,6 @@ _LIBCPP_HARDENING_MODE_DEBUG
|
||||
# define _LIBCPP_ALIGNOF(_Tp) alignof(_Tp)
|
||||
# define _ALIGNAS_TYPE(x) alignas(x)
|
||||
# define _ALIGNAS(x) alignas(x)
|
||||
# define _LIBCPP_NORETURN [[noreturn]]
|
||||
# define _NOEXCEPT noexcept
|
||||
# define _NOEXCEPT_(...) noexcept(__VA_ARGS__)
|
||||
# define _LIBCPP_CONSTEXPR constexpr
|
||||
@ -322,7 +321,6 @@ _LIBCPP_HARDENING_MODE_DEBUG
|
||||
# define _LIBCPP_ALIGNOF(_Tp) _Alignof(_Tp)
|
||||
# define _ALIGNAS_TYPE(x) __attribute__((__aligned__(_LIBCPP_ALIGNOF(x))))
|
||||
# define _ALIGNAS(x) __attribute__((__aligned__(x)))
|
||||
# define _LIBCPP_NORETURN __attribute__((__noreturn__))
|
||||
# define _LIBCPP_HAS_NO_NOEXCEPT
|
||||
# define nullptr __nullptr
|
||||
# define _NOEXCEPT throw()
|
||||
|
@ -159,7 +159,7 @@ _LIBCPP_EXPORTED_FROM_ABI void swap(exception_ptr&, exception_ptr&) _NOEXCEPT;
|
||||
|
||||
_LIBCPP_EXPORTED_FROM_ABI exception_ptr __copy_exception_ptr(void* __except, const void* __ptr);
|
||||
_LIBCPP_EXPORTED_FROM_ABI exception_ptr current_exception() _NOEXCEPT;
|
||||
_LIBCPP_NORETURN _LIBCPP_EXPORTED_FROM_ABI void rethrow_exception(exception_ptr);
|
||||
[[__noreturn__]] _LIBCPP_EXPORTED_FROM_ABI void rethrow_exception(exception_ptr);
|
||||
|
||||
// This is a built-in template function which automagically extracts the required
|
||||
// information.
|
||||
|
@ -40,7 +40,7 @@ public:
|
||||
virtual ~nested_exception() _NOEXCEPT;
|
||||
|
||||
// access functions
|
||||
_LIBCPP_NORETURN void rethrow_nested() const;
|
||||
[[__noreturn__]] void rethrow_nested() const;
|
||||
_LIBCPP_HIDE_FROM_ABI exception_ptr nested_ptr() const _NOEXCEPT { return __ptr_; }
|
||||
};
|
||||
|
||||
@ -55,19 +55,19 @@ struct __throw_with_nested;
|
||||
|
||||
template <class _Tp, class _Up>
|
||||
struct __throw_with_nested<_Tp, _Up, true> {
|
||||
_LIBCPP_NORETURN static inline _LIBCPP_HIDE_FROM_ABI void __do_throw(_Tp&& __t) {
|
||||
[[__noreturn__]] static inline _LIBCPP_HIDE_FROM_ABI void __do_throw(_Tp&& __t) {
|
||||
throw __nested<_Up>(std::forward<_Tp>(__t));
|
||||
}
|
||||
};
|
||||
|
||||
template <class _Tp, class _Up>
|
||||
struct __throw_with_nested<_Tp, _Up, false> {
|
||||
_LIBCPP_NORETURN static inline _LIBCPP_HIDE_FROM_ABI void __do_throw(_Tp&& __t) { throw std::forward<_Tp>(__t); }
|
||||
[[__noreturn__]] static inline _LIBCPP_HIDE_FROM_ABI void __do_throw(_Tp&& __t) { throw std::forward<_Tp>(__t); }
|
||||
};
|
||||
#endif
|
||||
|
||||
template <class _Tp>
|
||||
_LIBCPP_NORETURN _LIBCPP_HIDE_FROM_ABI void throw_with_nested(_Tp&& __t) {
|
||||
[[__noreturn__]] _LIBCPP_HIDE_FROM_ABI void throw_with_nested(_Tp&& __t) {
|
||||
#ifndef _LIBCPP_HAS_NO_EXCEPTIONS
|
||||
using _Up = __decay_t<_Tp>;
|
||||
static_assert(is_copy_constructible<_Up>::value, "type thrown must be CopyConstructible");
|
||||
|
@ -22,7 +22,7 @@ namespace std { // purposefully not using versioning namespace
|
||||
using unexpected_handler = void (*)();
|
||||
_LIBCPP_EXPORTED_FROM_ABI unexpected_handler set_unexpected(unexpected_handler) _NOEXCEPT;
|
||||
_LIBCPP_EXPORTED_FROM_ABI unexpected_handler get_unexpected() _NOEXCEPT;
|
||||
_LIBCPP_NORETURN _LIBCPP_EXPORTED_FROM_ABI void unexpected();
|
||||
[[__noreturn__]] _LIBCPP_EXPORTED_FROM_ABI void unexpected();
|
||||
#endif
|
||||
|
||||
using terminate_handler = void (*)();
|
||||
@ -37,7 +37,7 @@ _LIBCPP_EXPORTED_FROM_ABI int uncaught_exceptions() _NOEXCEPT;
|
||||
class _LIBCPP_EXPORTED_FROM_ABI exception_ptr;
|
||||
|
||||
_LIBCPP_EXPORTED_FROM_ABI exception_ptr current_exception() _NOEXCEPT;
|
||||
_LIBCPP_NORETURN _LIBCPP_EXPORTED_FROM_ABI void rethrow_exception(exception_ptr);
|
||||
[[__noreturn__]] _LIBCPP_EXPORTED_FROM_ABI void rethrow_exception(exception_ptr);
|
||||
} // namespace std
|
||||
|
||||
#endif // _LIBCPP___EXCEPTION_OPERATIONS_H
|
||||
|
@ -16,7 +16,7 @@
|
||||
#endif
|
||||
|
||||
namespace std { // purposefully not using versioning namespace
|
||||
_LIBCPP_NORETURN _LIBCPP_EXPORTED_FROM_ABI void terminate() _NOEXCEPT;
|
||||
[[__noreturn__]] _LIBCPP_EXPORTED_FROM_ABI void terminate() _NOEXCEPT;
|
||||
} // namespace std
|
||||
|
||||
#endif // _LIBCPP___EXCEPTION_TERMINATE_H
|
||||
|
@ -69,13 +69,13 @@ private:
|
||||
|
||||
# ifndef _LIBCPP_HAS_NO_EXCEPTIONS
|
||||
template <class... _Args>
|
||||
_LIBCPP_NORETURN inline _LIBCPP_HIDE_FROM_ABI _LIBCPP_AVAILABILITY_FILESYSTEM_LIBRARY void
|
||||
[[__noreturn__]] inline _LIBCPP_HIDE_FROM_ABI _LIBCPP_AVAILABILITY_FILESYSTEM_LIBRARY void
|
||||
__throw_filesystem_error(_Args&&... __args) {
|
||||
throw filesystem_error(std::forward<_Args>(__args)...);
|
||||
}
|
||||
# else
|
||||
template <class... _Args>
|
||||
_LIBCPP_NORETURN inline _LIBCPP_HIDE_FROM_ABI _LIBCPP_AVAILABILITY_FILESYSTEM_LIBRARY void
|
||||
[[__noreturn__]] inline _LIBCPP_HIDE_FROM_ABI _LIBCPP_AVAILABILITY_FILESYSTEM_LIBRARY void
|
||||
__throw_filesystem_error(_Args&&...) {
|
||||
_LIBCPP_VERBOSE_ABORT("filesystem_error was thrown in -fno-exceptions mode");
|
||||
}
|
||||
|
@ -35,7 +35,7 @@ public:
|
||||
};
|
||||
_LIBCPP_DIAGNOSTIC_POP
|
||||
|
||||
_LIBCPP_NORETURN inline _LIBCPP_HIDE_FROM_ABI void __throw_format_error(const char* __s) {
|
||||
[[noreturn]] inline _LIBCPP_HIDE_FROM_ABI void __throw_format_error(const char* __s) {
|
||||
# ifndef _LIBCPP_HAS_NO_EXCEPTIONS
|
||||
throw format_error(__s);
|
||||
# else
|
||||
|
@ -52,13 +52,13 @@ _LIBCPP_BEGIN_NAMESPACE_STD
|
||||
|
||||
namespace __format_spec {
|
||||
|
||||
_LIBCPP_NORETURN _LIBCPP_HIDE_FROM_ABI inline void
|
||||
[[noreturn]] _LIBCPP_HIDE_FROM_ABI inline void
|
||||
__throw_invalid_option_format_error(const char* __id, const char* __option) {
|
||||
std::__throw_format_error(
|
||||
(string("The format specifier for ") + __id + " does not allow the " + __option + " option").c_str());
|
||||
}
|
||||
|
||||
_LIBCPP_NORETURN _LIBCPP_HIDE_FROM_ABI inline void __throw_invalid_type_format_error(const char* __id) {
|
||||
[[noreturn]] _LIBCPP_HIDE_FROM_ABI inline void __throw_invalid_type_format_error(const char* __id) {
|
||||
std::__throw_format_error(
|
||||
(string("The type option contains an invalid value for ") + __id + " formatting argument").c_str());
|
||||
}
|
||||
|
@ -78,7 +78,7 @@ public:
|
||||
};
|
||||
_LIBCPP_DIAGNOSTIC_POP
|
||||
|
||||
_LIBCPP_NORETURN inline _LIBCPP_HIDE_FROM_ABI void __throw_bad_function_call() {
|
||||
[[__noreturn__]] inline _LIBCPP_HIDE_FROM_ABI void __throw_bad_function_call() {
|
||||
# ifndef _LIBCPP_HAS_NO_EXCEPTIONS
|
||||
throw bad_function_call();
|
||||
# else
|
||||
|
@ -123,7 +123,7 @@ public:
|
||||
const char* what() const _NOEXCEPT override;
|
||||
};
|
||||
|
||||
_LIBCPP_NORETURN inline _LIBCPP_HIDE_FROM_ABI void __throw_bad_weak_ptr() {
|
||||
[[__noreturn__]] inline _LIBCPP_HIDE_FROM_ABI void __throw_bad_weak_ptr() {
|
||||
#ifndef _LIBCPP_HAS_NO_EXCEPTIONS
|
||||
throw bad_weak_ptr();
|
||||
#else
|
||||
|
@ -39,8 +39,8 @@ public:
|
||||
_LIBCPP_HIDE_FROM_ABI const error_code& code() const _NOEXCEPT { return __ec_; }
|
||||
};
|
||||
|
||||
_LIBCPP_NORETURN _LIBCPP_EXPORTED_FROM_ABI void __throw_system_error(int __ev, const char* __what_arg);
|
||||
_LIBCPP_NORETURN _LIBCPP_HIDE_FROM_ABI inline void __throw_system_error(error_code __ec, const char* __what_arg) {
|
||||
[[__noreturn__]] _LIBCPP_EXPORTED_FROM_ABI void __throw_system_error(int __ev, const char* __what_arg);
|
||||
[[__noreturn__]] _LIBCPP_HIDE_FROM_ABI inline void __throw_system_error(error_code __ec, const char* __what_arg) {
|
||||
#ifndef _LIBCPP_HAS_NO_EXCEPTIONS
|
||||
throw system_error(__ec, __what_arg);
|
||||
#else
|
||||
|
@ -18,7 +18,7 @@
|
||||
|
||||
_LIBCPP_BEGIN_NAMESPACE_STD
|
||||
|
||||
_LIBCPP_NORETURN _LIBCPP_HIDE_FROM_ABI inline void __libcpp_unreachable() {
|
||||
[[__noreturn__]] _LIBCPP_HIDE_FROM_ABI inline void __libcpp_unreachable() {
|
||||
_LIBCPP_ASSERT_INTERNAL(false, "std::unreachable() was reached");
|
||||
__builtin_unreachable();
|
||||
}
|
||||
|
@ -20,7 +20,7 @@ _LIBCPP_BEGIN_NAMESPACE_STD
|
||||
|
||||
// This function should never be called directly from the code -- it should only be called through
|
||||
// the _LIBCPP_VERBOSE_ABORT macro.
|
||||
_LIBCPP_NORETURN _LIBCPP_AVAILABILITY_VERBOSE_ABORT _LIBCPP_OVERRIDABLE_FUNC_VIS
|
||||
[[__noreturn__]] _LIBCPP_AVAILABILITY_VERBOSE_ABORT _LIBCPP_OVERRIDABLE_FUNC_VIS
|
||||
_LIBCPP_ATTRIBUTE_FORMAT(__printf__, 1, 2) void __libcpp_verbose_abort(const char* __format, ...);
|
||||
|
||||
// _LIBCPP_VERBOSE_ABORT(format, args...)
|
||||
|
@ -127,7 +127,7 @@ _LIBCPP_BEGIN_NAMESPACE_STD
|
||||
|
||||
#if _LIBCPP_STD_VER >= 17
|
||||
|
||||
_LIBCPP_NORETURN inline _LIBCPP_HIDE_FROM_ABI _LIBCPP_AVAILABILITY_THROW_BAD_ANY_CAST void __throw_bad_any_cast() {
|
||||
[[noreturn]] inline _LIBCPP_HIDE_FROM_ABI _LIBCPP_AVAILABILITY_THROW_BAD_ANY_CAST void __throw_bad_any_cast() {
|
||||
# ifndef _LIBCPP_HAS_NO_EXCEPTIONS
|
||||
throw bad_any_cast();
|
||||
# else
|
||||
|
@ -472,7 +472,7 @@ inline _LIBCPP_HIDE_FROM_ABI error_condition make_error_condition(future_errc __
|
||||
return error_condition(static_cast<int>(__e), future_category());
|
||||
}
|
||||
|
||||
_LIBCPP_NORETURN inline _LIBCPP_HIDE_FROM_ABI void __throw_future_error(future_errc __ev);
|
||||
[[__noreturn__]] inline _LIBCPP_HIDE_FROM_ABI void __throw_future_error(future_errc __ev);
|
||||
|
||||
class _LIBCPP_EXPORTED_FROM_ABI future_error : public logic_error {
|
||||
error_code __ec_;
|
||||
|
@ -440,7 +440,7 @@ public:
|
||||
~failure() _NOEXCEPT override;
|
||||
};
|
||||
|
||||
_LIBCPP_NORETURN inline _LIBCPP_HIDE_FROM_ABI void __throw_failure(char const* __msg) {
|
||||
[[__noreturn__]] inline _LIBCPP_HIDE_FROM_ABI void __throw_failure(char const* __msg) {
|
||||
# ifndef _LIBCPP_HAS_NO_EXCEPTIONS
|
||||
throw ios_base::failure(__msg);
|
||||
# else
|
||||
|
@ -166,9 +166,9 @@ public:
|
||||
};
|
||||
#endif // defined(_LIBCPP_ABI_VCRUNTIME) && defined(_HAS_EXCEPTIONS) && _HAS_EXCEPTIONS == 0
|
||||
|
||||
_LIBCPP_NORETURN _LIBCPP_EXPORTED_FROM_ABI void __throw_bad_alloc(); // not in C++ spec
|
||||
[[__noreturn__]] _LIBCPP_EXPORTED_FROM_ABI void __throw_bad_alloc(); // not in C++ spec
|
||||
|
||||
_LIBCPP_NORETURN inline _LIBCPP_HIDE_FROM_ABI void __throw_bad_array_new_length() {
|
||||
[[__noreturn__]] inline _LIBCPP_HIDE_FROM_ABI void __throw_bad_array_new_length() {
|
||||
#ifndef _LIBCPP_HAS_NO_EXCEPTIONS
|
||||
throw bad_array_new_length();
|
||||
#else
|
||||
|
@ -255,7 +255,7 @@ public:
|
||||
|
||||
_LIBCPP_BEGIN_NAMESPACE_STD
|
||||
|
||||
_LIBCPP_NORETURN inline _LIBCPP_HIDE_FROM_ABI _LIBCPP_AVAILABILITY_THROW_BAD_OPTIONAL_ACCESS void
|
||||
[[noreturn]] inline _LIBCPP_HIDE_FROM_ABI _LIBCPP_AVAILABILITY_THROW_BAD_OPTIONAL_ACCESS void
|
||||
__throw_bad_optional_access() {
|
||||
# ifndef _LIBCPP_HAS_NO_EXCEPTIONS
|
||||
throw bad_optional_access();
|
||||
|
@ -983,7 +983,7 @@ public:
|
||||
};
|
||||
|
||||
template <regex_constants::error_type _Ev>
|
||||
_LIBCPP_NORETURN inline _LIBCPP_HIDE_FROM_ABI void __throw_regex_error() {
|
||||
[[__noreturn__]] inline _LIBCPP_HIDE_FROM_ABI void __throw_regex_error() {
|
||||
#ifndef _LIBCPP_HAS_NO_EXCEPTIONS
|
||||
throw regex_error(_Ev);
|
||||
#else
|
||||
|
@ -209,9 +209,9 @@ public:
|
||||
_LIBCPP_BEGIN_NAMESPACE_STD
|
||||
|
||||
// in the dylib
|
||||
_LIBCPP_NORETURN _LIBCPP_EXPORTED_FROM_ABI void __throw_runtime_error(const char*);
|
||||
[[__noreturn__]] _LIBCPP_EXPORTED_FROM_ABI void __throw_runtime_error(const char*);
|
||||
|
||||
_LIBCPP_NORETURN inline _LIBCPP_HIDE_FROM_ABI void __throw_logic_error(const char* __msg) {
|
||||
[[__noreturn__]] inline _LIBCPP_HIDE_FROM_ABI void __throw_logic_error(const char* __msg) {
|
||||
#ifndef _LIBCPP_HAS_NO_EXCEPTIONS
|
||||
throw logic_error(__msg);
|
||||
#else
|
||||
@ -219,7 +219,7 @@ _LIBCPP_NORETURN inline _LIBCPP_HIDE_FROM_ABI void __throw_logic_error(const cha
|
||||
#endif
|
||||
}
|
||||
|
||||
_LIBCPP_NORETURN inline _LIBCPP_HIDE_FROM_ABI void __throw_domain_error(const char* __msg) {
|
||||
[[__noreturn__]] inline _LIBCPP_HIDE_FROM_ABI void __throw_domain_error(const char* __msg) {
|
||||
#ifndef _LIBCPP_HAS_NO_EXCEPTIONS
|
||||
throw domain_error(__msg);
|
||||
#else
|
||||
@ -227,7 +227,7 @@ _LIBCPP_NORETURN inline _LIBCPP_HIDE_FROM_ABI void __throw_domain_error(const ch
|
||||
#endif
|
||||
}
|
||||
|
||||
_LIBCPP_NORETURN inline _LIBCPP_HIDE_FROM_ABI void __throw_invalid_argument(const char* __msg) {
|
||||
[[__noreturn__]] inline _LIBCPP_HIDE_FROM_ABI void __throw_invalid_argument(const char* __msg) {
|
||||
#ifndef _LIBCPP_HAS_NO_EXCEPTIONS
|
||||
throw invalid_argument(__msg);
|
||||
#else
|
||||
@ -235,7 +235,7 @@ _LIBCPP_NORETURN inline _LIBCPP_HIDE_FROM_ABI void __throw_invalid_argument(cons
|
||||
#endif
|
||||
}
|
||||
|
||||
_LIBCPP_NORETURN inline _LIBCPP_HIDE_FROM_ABI void __throw_length_error(const char* __msg) {
|
||||
[[__noreturn__]] inline _LIBCPP_HIDE_FROM_ABI void __throw_length_error(const char* __msg) {
|
||||
#ifndef _LIBCPP_HAS_NO_EXCEPTIONS
|
||||
throw length_error(__msg);
|
||||
#else
|
||||
@ -243,7 +243,7 @@ _LIBCPP_NORETURN inline _LIBCPP_HIDE_FROM_ABI void __throw_length_error(const ch
|
||||
#endif
|
||||
}
|
||||
|
||||
_LIBCPP_NORETURN inline _LIBCPP_HIDE_FROM_ABI void __throw_out_of_range(const char* __msg) {
|
||||
[[__noreturn__]] inline _LIBCPP_HIDE_FROM_ABI void __throw_out_of_range(const char* __msg) {
|
||||
#ifndef _LIBCPP_HAS_NO_EXCEPTIONS
|
||||
throw out_of_range(__msg);
|
||||
#else
|
||||
@ -251,7 +251,7 @@ _LIBCPP_NORETURN inline _LIBCPP_HIDE_FROM_ABI void __throw_out_of_range(const ch
|
||||
#endif
|
||||
}
|
||||
|
||||
_LIBCPP_NORETURN inline _LIBCPP_HIDE_FROM_ABI void __throw_range_error(const char* __msg) {
|
||||
[[__noreturn__]] inline _LIBCPP_HIDE_FROM_ABI void __throw_range_error(const char* __msg) {
|
||||
#ifndef _LIBCPP_HAS_NO_EXCEPTIONS
|
||||
throw range_error(__msg);
|
||||
#else
|
||||
@ -259,7 +259,7 @@ _LIBCPP_NORETURN inline _LIBCPP_HIDE_FROM_ABI void __throw_range_error(const cha
|
||||
#endif
|
||||
}
|
||||
|
||||
_LIBCPP_NORETURN inline _LIBCPP_HIDE_FROM_ABI void __throw_overflow_error(const char* __msg) {
|
||||
[[__noreturn__]] inline _LIBCPP_HIDE_FROM_ABI void __throw_overflow_error(const char* __msg) {
|
||||
#ifndef _LIBCPP_HAS_NO_EXCEPTIONS
|
||||
throw overflow_error(__msg);
|
||||
#else
|
||||
@ -267,7 +267,7 @@ _LIBCPP_NORETURN inline _LIBCPP_HIDE_FROM_ABI void __throw_overflow_error(const
|
||||
#endif
|
||||
}
|
||||
|
||||
_LIBCPP_NORETURN inline _LIBCPP_HIDE_FROM_ABI void __throw_underflow_error(const char* __msg) {
|
||||
[[__noreturn__]] inline _LIBCPP_HIDE_FROM_ABI void __throw_underflow_error(const char* __msg) {
|
||||
#ifndef _LIBCPP_HAS_NO_EXCEPTIONS
|
||||
throw underflow_error(__msg);
|
||||
#else
|
||||
|
@ -2230,11 +2230,11 @@ private:
|
||||
return std::__is_pointer_in_range(data(), data() + size() + 1, std::addressof(__v));
|
||||
}
|
||||
|
||||
_LIBCPP_NORETURN _LIBCPP_HIDE_FROM_ABI void __throw_length_error() const {
|
||||
[[__noreturn__]] _LIBCPP_HIDE_FROM_ABI void __throw_length_error() const {
|
||||
std::__throw_length_error("basic_string");
|
||||
}
|
||||
|
||||
_LIBCPP_NORETURN _LIBCPP_HIDE_FROM_ABI void __throw_out_of_range() const {
|
||||
[[__noreturn__]] _LIBCPP_HIDE_FROM_ABI void __throw_out_of_range() const {
|
||||
std::__throw_out_of_range("basic_string");
|
||||
}
|
||||
|
||||
|
@ -373,7 +373,7 @@ private:
|
||||
#endif // defined(_LIBCPP_ABI_VCRUNTIME) && _HAS_EXCEPTIONS == 0
|
||||
|
||||
_LIBCPP_BEGIN_NAMESPACE_STD
|
||||
_LIBCPP_NORETURN inline _LIBCPP_HIDE_FROM_ABI void __throw_bad_cast() {
|
||||
[[__noreturn__]] inline _LIBCPP_HIDE_FROM_ABI void __throw_bad_cast() {
|
||||
#ifndef _LIBCPP_HAS_NO_EXCEPTIONS
|
||||
throw bad_cast();
|
||||
#else
|
||||
|
@ -298,7 +298,7 @@ struct __farray {
|
||||
_LIBCPP_HIDE_FROM_ABI constexpr const _Tp& operator[](size_t __n) const noexcept { return __buf_[__n]; }
|
||||
};
|
||||
|
||||
_LIBCPP_NORETURN inline _LIBCPP_HIDE_FROM_ABI _LIBCPP_AVAILABILITY_THROW_BAD_VARIANT_ACCESS void
|
||||
[[noreturn]] inline _LIBCPP_HIDE_FROM_ABI _LIBCPP_AVAILABILITY_THROW_BAD_VARIANT_ACCESS void
|
||||
__throw_bad_variant_access() {
|
||||
# ifndef _LIBCPP_HAS_NO_EXCEPTIONS
|
||||
throw bad_variant_access();
|
||||
|
@ -995,9 +995,9 @@ private:
|
||||
__move_assign_alloc(__c, integral_constant<bool, __alloc_traits::propagate_on_container_move_assignment::value>());
|
||||
}
|
||||
|
||||
_LIBCPP_NORETURN _LIBCPP_HIDE_FROM_ABI void __throw_length_error() const { std::__throw_length_error("vector"); }
|
||||
[[__noreturn__]] _LIBCPP_HIDE_FROM_ABI void __throw_length_error() const { std::__throw_length_error("vector"); }
|
||||
|
||||
_LIBCPP_NORETURN _LIBCPP_HIDE_FROM_ABI void __throw_out_of_range() const { std::__throw_out_of_range("vector"); }
|
||||
[[__noreturn__]] _LIBCPP_HIDE_FROM_ABI void __throw_out_of_range() const { std::__throw_out_of_range("vector"); }
|
||||
|
||||
_LIBCPP_CONSTEXPR_SINCE_CXX20 _LIBCPP_HIDE_FROM_ABI void __copy_assign_alloc(const vector& __c, true_type) {
|
||||
if (__alloc() != __c.__alloc()) {
|
||||
@ -2163,9 +2163,9 @@ public:
|
||||
_LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 bool __invariants() const;
|
||||
|
||||
private:
|
||||
_LIBCPP_NORETURN _LIBCPP_HIDE_FROM_ABI void __throw_length_error() const { std::__throw_length_error("vector"); }
|
||||
[[__noreturn__]] _LIBCPP_HIDE_FROM_ABI void __throw_length_error() const { std::__throw_length_error("vector"); }
|
||||
|
||||
_LIBCPP_NORETURN _LIBCPP_HIDE_FROM_ABI void __throw_out_of_range() const { std::__throw_out_of_range("vector"); }
|
||||
[[__noreturn__]] _LIBCPP_HIDE_FROM_ABI void __throw_out_of_range() const { std::__throw_out_of_range("vector"); }
|
||||
|
||||
template <class _InputIterator, class _Sentinel>
|
||||
_LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 void
|
||||
|
@ -19,7 +19,7 @@
|
||||
|
||||
_LIBCPP_BEGIN_NAMESPACE_STD
|
||||
|
||||
_LIBCPP_NORETURN void __throw_runtime_error(const char* msg) {
|
||||
void __throw_runtime_error(const char* msg) {
|
||||
#ifndef _LIBCPP_HAS_NO_EXCEPTIONS
|
||||
throw runtime_error(msg);
|
||||
#else
|
||||
|
@ -28,8 +28,8 @@ struct __basic_string_common;
|
||||
// The struct isn't declared anymore in the headers. It's only here for ABI compatibility.
|
||||
template <>
|
||||
struct __basic_string_common<true> {
|
||||
_LIBCPP_NORETURN _LIBCPP_EXPORTED_FROM_ABI void __throw_length_error() const;
|
||||
_LIBCPP_NORETURN _LIBCPP_EXPORTED_FROM_ABI void __throw_out_of_range() const;
|
||||
[[noreturn]] _LIBCPP_EXPORTED_FROM_ABI void __throw_length_error() const;
|
||||
[[noreturn]] _LIBCPP_EXPORTED_FROM_ABI void __throw_out_of_range() const;
|
||||
};
|
||||
|
||||
void __basic_string_common<true>::__throw_length_error() const { std::__throw_length_error("basic_string"); }
|
||||
|
@ -21,7 +21,7 @@ unexpected_handler set_unexpected(unexpected_handler func) noexcept {
|
||||
|
||||
unexpected_handler get_unexpected() noexcept { return __libcpp_atomic_load(&__unexpected_handler); }
|
||||
|
||||
_LIBCPP_NORETURN void unexpected() {
|
||||
[[noreturn]] void unexpected() {
|
||||
(*get_unexpected())();
|
||||
// unexpected handler should not return
|
||||
terminate();
|
||||
@ -33,7 +33,7 @@ terminate_handler set_terminate(terminate_handler func) noexcept {
|
||||
|
||||
terminate_handler get_terminate() noexcept { return __libcpp_atomic_load(&__terminate_handler); }
|
||||
|
||||
_LIBCPP_NORETURN void terminate() noexcept {
|
||||
[[noreturn]] void terminate() noexcept {
|
||||
#ifndef _LIBCPP_HAS_NO_EXCEPTIONS
|
||||
try {
|
||||
#endif // _LIBCPP_HAS_NO_EXCEPTIONS
|
||||
|
@ -32,7 +32,7 @@ unexpected_handler set_unexpected(unexpected_handler func) noexcept { return ::s
|
||||
|
||||
unexpected_handler get_unexpected() noexcept { return ::_get_unexpected(); }
|
||||
|
||||
_LIBCPP_NORETURN void unexpected() {
|
||||
[[noreturn]] void unexpected() {
|
||||
(*get_unexpected())();
|
||||
// unexpected handler should not return
|
||||
terminate();
|
||||
@ -42,7 +42,7 @@ terminate_handler set_terminate(terminate_handler func) noexcept { return ::set_
|
||||
|
||||
terminate_handler get_terminate() noexcept { return ::_get_terminate(); }
|
||||
|
||||
_LIBCPP_NORETURN void terminate() noexcept {
|
||||
[[noreturn]] void terminate() noexcept {
|
||||
#ifndef _LIBCPP_HAS_NO_EXCEPTIONS
|
||||
try {
|
||||
#endif // _LIBCPP_HAS_NO_EXCEPTIONS
|
||||
|
@ -40,7 +40,7 @@ nested_exception::nested_exception() noexcept : __ptr_(current_exception()) {}
|
||||
|
||||
nested_exception::~nested_exception() noexcept {}
|
||||
|
||||
_LIBCPP_NORETURN void nested_exception::rethrow_nested() const {
|
||||
void nested_exception::rethrow_nested() const {
|
||||
if (__ptr_ == nullptr)
|
||||
terminate();
|
||||
rethrow_exception(__ptr_);
|
||||
@ -55,7 +55,7 @@ exception_ptr current_exception() noexcept {
|
||||
return ptr;
|
||||
}
|
||||
|
||||
_LIBCPP_NORETURN void rethrow_exception(exception_ptr p) {
|
||||
void rethrow_exception(exception_ptr p) {
|
||||
__cxa_rethrow_primary_exception(p.__ptr_);
|
||||
// if p.__ptr_ is NULL, above returns so we terminate
|
||||
terminate();
|
||||
|
@ -31,7 +31,7 @@ struct exception_ptr {
|
||||
|
||||
} // namespace __exception_ptr
|
||||
|
||||
_LIBCPP_NORETURN void rethrow_exception(__exception_ptr::exception_ptr);
|
||||
[[noreturn]] void rethrow_exception(__exception_ptr::exception_ptr);
|
||||
|
||||
exception_ptr::~exception_ptr() noexcept { reinterpret_cast<__exception_ptr::exception_ptr*>(this)->~exception_ptr(); }
|
||||
|
||||
@ -55,13 +55,13 @@ exception_ptr exception_ptr::__from_native_exception_pointer(void* __e) noexcept
|
||||
|
||||
nested_exception::nested_exception() noexcept : __ptr_(current_exception()) {}
|
||||
|
||||
_LIBCPP_NORETURN void nested_exception::rethrow_nested() const {
|
||||
[[noreturn]] void nested_exception::rethrow_nested() const {
|
||||
if (__ptr_ == nullptr)
|
||||
terminate();
|
||||
rethrow_exception(__ptr_);
|
||||
}
|
||||
|
||||
_LIBCPP_NORETURN void rethrow_exception(exception_ptr p) {
|
||||
[[noreturn]] void rethrow_exception(exception_ptr p) {
|
||||
rethrow_exception(reinterpret_cast<__exception_ptr::exception_ptr&>(p));
|
||||
}
|
||||
|
||||
|
@ -61,13 +61,13 @@ exception_ptr current_exception() noexcept {
|
||||
return __ret;
|
||||
}
|
||||
|
||||
_LIBCPP_NORETURN void rethrow_exception(exception_ptr p) { __ExceptionPtrRethrow(&p); }
|
||||
[[noreturn]] void rethrow_exception(exception_ptr p) { __ExceptionPtrRethrow(&p); }
|
||||
|
||||
nested_exception::nested_exception() noexcept : __ptr_(current_exception()) {}
|
||||
|
||||
nested_exception::~nested_exception() noexcept {}
|
||||
|
||||
_LIBCPP_NORETURN void nested_exception::rethrow_nested() const {
|
||||
[[noreturn]] void nested_exception::rethrow_nested() const {
|
||||
if (__ptr_ == nullptr)
|
||||
terminate();
|
||||
rethrow_exception(__ptr_);
|
||||
|
@ -44,7 +44,7 @@ nested_exception::~nested_exception() noexcept {}
|
||||
|
||||
#endif
|
||||
|
||||
_LIBCPP_NORETURN void nested_exception::rethrow_nested() const {
|
||||
[[noreturn]] void nested_exception::rethrow_nested() const {
|
||||
#warning exception_ptr not yet implemented
|
||||
fprintf(stderr, "exception_ptr not yet implemented\n");
|
||||
::abort();
|
||||
@ -61,7 +61,7 @@ exception_ptr current_exception() noexcept {
|
||||
::abort();
|
||||
}
|
||||
|
||||
_LIBCPP_NORETURN void rethrow_exception(exception_ptr p) {
|
||||
[[noreturn]] void rethrow_exception(exception_ptr p) {
|
||||
#warning exception_ptr not yet implemented
|
||||
fprintf(stderr, "exception_ptr not yet implemented\n");
|
||||
::abort();
|
||||
|
@ -17,8 +17,8 @@ struct __vector_base_common;
|
||||
|
||||
template <>
|
||||
struct __vector_base_common<true> {
|
||||
_LIBCPP_NORETURN _LIBCPP_EXPORTED_FROM_ABI void __throw_length_error() const;
|
||||
_LIBCPP_NORETURN _LIBCPP_EXPORTED_FROM_ABI void __throw_out_of_range() const;
|
||||
[[noreturn]] _LIBCPP_EXPORTED_FROM_ABI void __throw_length_error() const;
|
||||
[[noreturn]] _LIBCPP_EXPORTED_FROM_ABI void __throw_out_of_range() const;
|
||||
};
|
||||
|
||||
void __vector_base_common<true>::__throw_length_error() const { std::__throw_length_error("vector"); }
|
||||
|
@ -50,7 +50,7 @@ void test_log(const char* condition, const char* file, int line, const F& functo
|
||||
}
|
||||
|
||||
template <class Arg>
|
||||
TEST_NORETURN void test_fail(const char* file, int line, const Arg& arg) {
|
||||
[[noreturn]] void test_fail(const char* file, int line, const Arg& arg) {
|
||||
test_log("", file, line, arg);
|
||||
std::abort();
|
||||
}
|
||||
|
@ -142,7 +142,7 @@ std::string ToString(std::array<DeathCause, N> const& causes) {
|
||||
return ss.str();
|
||||
}
|
||||
|
||||
TEST_NORETURN void StopChildProcess(DeathCause cause) { std::exit(static_cast<int>(cause)); }
|
||||
[[noreturn]] void StopChildProcess(DeathCause cause) { std::exit(static_cast<int>(cause)); }
|
||||
|
||||
DeathCause ConvertToDeathCause(int val) {
|
||||
if (val < static_cast<int>(DeathCause::VerboseAbort) || val > static_cast<int>(DeathCause::Unknown)) {
|
||||
@ -260,7 +260,7 @@ private:
|
||||
}
|
||||
|
||||
template <class Func>
|
||||
TEST_NORETURN void RunForChild(Func&& f) {
|
||||
[[noreturn]] void RunForChild(Func&& f) {
|
||||
close(GetStdOutReadFD()); // don't need to read from the pipe in the child.
|
||||
close(GetStdErrReadFD());
|
||||
auto DupFD = [](int DestFD, int TargetFD) {
|
||||
|
@ -24,14 +24,13 @@
|
||||
|
||||
namespace detail
|
||||
{
|
||||
TEST_NORETURN
|
||||
inline void throw_bad_alloc_helper() {
|
||||
[[noreturn]] inline void throw_bad_alloc_helper() {
|
||||
#ifndef TEST_HAS_NO_EXCEPTIONS
|
||||
throw std::bad_alloc();
|
||||
throw std::bad_alloc();
|
||||
#else
|
||||
std::abort();
|
||||
#endif
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
class MemCounter
|
||||
|
@ -214,12 +214,6 @@
|
||||
#define TEST_IS_EXECUTED_IN_A_SLOW_ENVIRONMENT
|
||||
#endif
|
||||
|
||||
#if defined(_LIBCPP_NORETURN)
|
||||
#define TEST_NORETURN _LIBCPP_NORETURN
|
||||
#else
|
||||
#define TEST_NORETURN [[noreturn]]
|
||||
#endif
|
||||
|
||||
#if defined(_LIBCPP_HAS_NO_ALIGNED_ALLOCATION) || \
|
||||
(!(TEST_STD_VER > 14 || \
|
||||
(defined(__cpp_aligned_new) && __cpp_aligned_new >= 201606L)))
|
||||
|
Loading…
x
Reference in New Issue
Block a user