noexcept for <memory>.  I've added a few extension noexcept to:  allocator_traits<A>::deallocate, allocaate<T>::deallocate, return_temporary_buffer, and default_delete<T>::operator()(T*) const.  My rationale was:  If a std-dicated noexcept function needs to call another std-defined function, that called function must be noexcept.  We're all a little new to noexcept, so things like this are to be expected.  Also included fix for broken __is_swappable trait pointed out by Marc Glisse, thanks Marc|.  And fixed a test case for is_nothrow_destructible.  Destructors are now noexcept by default|

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@132261 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/src/locale.cpp b/src/locale.cpp
index 4bd77ca..668847b 100644
--- a/src/locale.cpp
+++ b/src/locale.cpp
@@ -518,7 +518,7 @@
 }
 
 void
-locale::facet::__on_zero_shared()
+locale::facet::__on_zero_shared() _NOEXCEPT
 {
     delete this;
 }