Thanks for the feedback. Updated patch is below.
The noexcept on definition and the declaration of constructors _Sp_locker do not match. ChangeLog 2016-12-05 Aditya Kumar <hiradi...@msn.com> * src/c++11/shared_ptr.cc (_Sp_locker::_Sp_locker(const void* p)): Added noexcept on constructors. _Sp_locker::_Sp_locker(const void* p1, const void* p2): Same --- libstdc++-v3/src/c++11/shared_ptr.cc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/libstdc++-v3/src/c++11/shared_ptr.cc b/libstdc++-v3/src/c++11/shared_ptr.cc index 9028040..b4addd0 100644 --- a/libstdc++-v3/src/c++11/shared_ptr.cc +++ b/libstdc++-v3/src/c++11/shared_ptr.cc @@ -56,7 +56,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION { return _Hash_impl::hash(addr) & __gnu_internal::mask; } } - _Sp_locker::_Sp_locker(const void* p) + _Sp_locker::_Sp_locker(const void* p) noexcept { if (__gthread_active_p()) { @@ -67,7 +67,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION _M_key1 = _M_key2 = __gnu_internal::invalid; } - _Sp_locker::_Sp_locker(const void* p1, const void* p2) + _Sp_locker::_Sp_locker(const void* p1, const void* p2) noexcept { if (__gthread_active_p()) { -- 2.6.3