diff options
author | Jonathan Wakely <jwakely@redhat.com> | 2021-10-04 15:22:58 +0100 |
---|---|---|
committer | Jonathan Wakely <jwakely@redhat.com> | 2021-10-05 09:35:47 +0100 |
commit | 9665c2e76849c8e0066c6660779ae082fce67ea8 (patch) | |
tree | 771bb0c234b79333f3426ab518737dc545e6c887 | |
parent | 96955a82f0e1624a20ea2c9953d76a20ea433c24 (diff) | |
download | gcc-9665c2e76849c8e0066c6660779ae082fce67ea8.zip gcc-9665c2e76849c8e0066c6660779ae082fce67ea8.tar.gz gcc-9665c2e76849c8e0066c6660779ae082fce67ea8.tar.bz2 |
libstdc++: Add noexcept to some std::function internals
libstdc++-v3/ChangeLog:
* include/bits/std_function.h (_Any_data::_M_access): Add
noexcept.
(_Function_base::_Base_manager::_M_get_pointer): Likewise.
(_Function_base::_Base_manager::_M_not_empty_function):
Likewise.
-rw-r--r-- | libstdc++-v3/include/bits/std_function.h | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/libstdc++-v3/include/bits/std_function.h b/libstdc++-v3/include/bits/std_function.h index 3dda820..5573844 100644 --- a/libstdc++-v3/include/bits/std_function.h +++ b/libstdc++-v3/include/bits/std_function.h @@ -82,17 +82,17 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION union [[gnu::may_alias]] _Any_data { - void* _M_access() { return &_M_pod_data[0]; } - const void* _M_access() const { return &_M_pod_data[0]; } + void* _M_access() noexcept { return &_M_pod_data[0]; } + const void* _M_access() const noexcept { return &_M_pod_data[0]; } template<typename _Tp> _Tp& - _M_access() + _M_access() noexcept { return *static_cast<_Tp*>(_M_access()); } template<typename _Tp> const _Tp& - _M_access() const + _M_access() const noexcept { return *static_cast<const _Tp*>(_M_access()); } _Nocopy_types _M_unused; @@ -131,7 +131,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION // Retrieve a pointer to the function object static _Functor* - _M_get_pointer(const _Any_data& __source) + _M_get_pointer(const _Any_data& __source) noexcept { if _GLIBCXX17_CONSTEXPR (__stored_locally) { @@ -217,22 +217,22 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION template<typename _Signature> static bool - _M_not_empty_function(const function<_Signature>& __f) + _M_not_empty_function(const function<_Signature>& __f) noexcept { return static_cast<bool>(__f); } template<typename _Tp> static bool - _M_not_empty_function(_Tp* __fp) + _M_not_empty_function(_Tp* __fp) noexcept { return __fp != nullptr; } template<typename _Class, typename _Tp> static bool - _M_not_empty_function(_Tp _Class::* __mp) + _M_not_empty_function(_Tp _Class::* __mp) noexcept { return __mp != nullptr; } template<typename _Tp> static bool - _M_not_empty_function(const _Tp&) + _M_not_empty_function(const _Tp&) noexcept { return true; } }; |