aboutsummaryrefslogtreecommitdiff
path: root/libstdc++-v3
diff options
context:
space:
mode:
authorPaolo Carlini <paolo.carlini@oracle.com>2011-06-14 17:48:29 +0000
committerPaolo Carlini <paolo@gcc.gnu.org>2011-06-14 17:48:29 +0000
commit6a97dbf748b1ce195cd8f2048745879c9e13cad1 (patch)
tree29dc986eb0260685a89591352c498a4515583acc /libstdc++-v3
parentfa4657624c6609bbfffb4ec5fb1e19e44691c864 (diff)
downloadgcc-6a97dbf748b1ce195cd8f2048745879c9e13cad1.zip
gcc-6a97dbf748b1ce195cd8f2048745879c9e13cad1.tar.gz
gcc-6a97dbf748b1ce195cd8f2048745879c9e13cad1.tar.bz2
valarray (~valarray): Use noexcept.
2011-06-14 Paolo Carlini <paolo.carlini@oracle.com> * include/std/valarray (~valarray): Use noexcept. * include/bits/unique_ptr.h (~unique_ptr): Likewise. * testsuite/26_numerics/valarray/noexcept_move_construct.cc: New. * testsuite/20_util/shared_ptr/cons/noexcept_move_construct.cc: Likewise. * testsuite/20_util/unique_ptr/cons/noexcept_move_construct.cc: Likewise. * testsuite/20_util/weak_ptr/cons/noexcept_move_construct.cc: Likewise. From-SVN: r175039
Diffstat (limited to 'libstdc++-v3')
-rw-r--r--libstdc++-v3/ChangeLog12
-rw-r--r--libstdc++-v3/include/bits/unique_ptr.h2
-rw-r--r--libstdc++-v3/include/std/valarray4
-rw-r--r--libstdc++-v3/testsuite/20_util/shared_ptr/cons/noexcept_move_construct.cc27
-rw-r--r--libstdc++-v3/testsuite/20_util/unique_ptr/cons/noexcept_move_construct.cc27
-rw-r--r--libstdc++-v3/testsuite/20_util/weak_ptr/cons/noexcept_move_construct.cc27
-rw-r--r--libstdc++-v3/testsuite/26_numerics/valarray/noexcept_move_construct.cc27
7 files changed, 123 insertions, 3 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index ebe9f20..fbd45e6 100644
--- a/libstdc++-v3/ChangeLog
+++ b/libstdc++-v3/ChangeLog
@@ -1,5 +1,17 @@
2011-06-14 Paolo Carlini <paolo.carlini@oracle.com>
+ * include/std/valarray (~valarray): Use noexcept.
+ * include/bits/unique_ptr.h (~unique_ptr): Likewise.
+ * testsuite/26_numerics/valarray/noexcept_move_construct.cc: New.
+ * testsuite/20_util/shared_ptr/cons/noexcept_move_construct.cc:
+ Likewise.
+ * testsuite/20_util/unique_ptr/cons/noexcept_move_construct.cc:
+ Likewise.
+ * testsuite/20_util/weak_ptr/cons/noexcept_move_construct.cc:
+ Likewise.
+
+2011-06-14 Paolo Carlini <paolo.carlini@oracle.com>
+
* include/std/functional: Use noexcept.
* include/bits/stl_tempbuf.h: Likewise.
diff --git a/libstdc++-v3/include/bits/unique_ptr.h b/libstdc++-v3/include/bits/unique_ptr.h
index ec9c3c0..a6f457e 100644
--- a/libstdc++-v3/include/bits/unique_ptr.h
+++ b/libstdc++-v3/include/bits/unique_ptr.h
@@ -166,7 +166,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
#endif
// Destructor.
- ~unique_ptr() { reset(); }
+ ~unique_ptr() noexcept { reset(); }
// Assignment.
unique_ptr&
diff --git a/libstdc++-v3/include/std/valarray b/libstdc++-v3/include/std/valarray
index de68868..e66333e 100644
--- a/libstdc++-v3/include/std/valarray
+++ b/libstdc++-v3/include/std/valarray
@@ -165,7 +165,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
template<class _Dom>
valarray(const _Expr<_Dom, _Tp>& __e);
- ~valarray();
+ ~valarray() _GLIBCXX_NOEXCEPT;
// _lib.valarray.assign_ assignment:
/**
@@ -697,7 +697,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
template<typename _Tp>
inline
- valarray<_Tp>::~valarray()
+ valarray<_Tp>::~valarray() _GLIBCXX_NOEXCEPT
{
std::__valarray_destroy_elements(_M_data, _M_data + _M_size);
std::__valarray_release_memory(_M_data);
diff --git a/libstdc++-v3/testsuite/20_util/shared_ptr/cons/noexcept_move_construct.cc b/libstdc++-v3/testsuite/20_util/shared_ptr/cons/noexcept_move_construct.cc
new file mode 100644
index 0000000..640a54b
--- /dev/null
+++ b/libstdc++-v3/testsuite/20_util/shared_ptr/cons/noexcept_move_construct.cc
@@ -0,0 +1,27 @@
+// { dg-do compile }
+// { dg-options "-std=gnu++0x" }
+
+// 2011-06-14 Paolo Carlini <paolo.carlini@oracle.com>
+//
+// Copyright (C) 2011 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 3, or (at your option)
+// any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING3. If not see
+// <http://www.gnu.org/licenses/>.
+
+#include <memory>
+
+typedef std::shared_ptr<int> sptype;
+
+static_assert(std::is_nothrow_move_constructible<sptype>::value, "Error");
diff --git a/libstdc++-v3/testsuite/20_util/unique_ptr/cons/noexcept_move_construct.cc b/libstdc++-v3/testsuite/20_util/unique_ptr/cons/noexcept_move_construct.cc
new file mode 100644
index 0000000..c5de14f
--- /dev/null
+++ b/libstdc++-v3/testsuite/20_util/unique_ptr/cons/noexcept_move_construct.cc
@@ -0,0 +1,27 @@
+// { dg-do compile }
+// { dg-options "-std=gnu++0x" }
+
+// 2011-06-14 Paolo Carlini <paolo.carlini@oracle.com>
+//
+// Copyright (C) 2011 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 3, or (at your option)
+// any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING3. If not see
+// <http://www.gnu.org/licenses/>.
+
+#include <memory>
+
+typedef std::unique_ptr<int> uptype;
+
+static_assert(std::is_nothrow_move_constructible<uptype>::value, "Error");
diff --git a/libstdc++-v3/testsuite/20_util/weak_ptr/cons/noexcept_move_construct.cc b/libstdc++-v3/testsuite/20_util/weak_ptr/cons/noexcept_move_construct.cc
new file mode 100644
index 0000000..4e9a90d
--- /dev/null
+++ b/libstdc++-v3/testsuite/20_util/weak_ptr/cons/noexcept_move_construct.cc
@@ -0,0 +1,27 @@
+// { dg-do compile }
+// { dg-options "-std=gnu++0x" }
+
+// 2011-06-14 Paolo Carlini <paolo.carlini@oracle.com>
+//
+// Copyright (C) 2011 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 3, or (at your option)
+// any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING3. If not see
+// <http://www.gnu.org/licenses/>.
+
+#include <memory>
+
+typedef std::weak_ptr<int> wptype;
+
+static_assert(std::is_nothrow_move_constructible<wptype>::value, "Error");
diff --git a/libstdc++-v3/testsuite/26_numerics/valarray/noexcept_move_construct.cc b/libstdc++-v3/testsuite/26_numerics/valarray/noexcept_move_construct.cc
new file mode 100644
index 0000000..3d7fdc3
--- /dev/null
+++ b/libstdc++-v3/testsuite/26_numerics/valarray/noexcept_move_construct.cc
@@ -0,0 +1,27 @@
+// { dg-do compile }
+// { dg-options "-std=gnu++0x" }
+
+// 2011-06-14 Paolo Carlini <paolo.carlini@oracle.com>
+//
+// Copyright (C) 2011 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 3, or (at your option)
+// any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING3. If not see
+// <http://www.gnu.org/licenses/>.
+
+#include <valarray>
+
+typedef std::valarray<int> vtype;
+
+static_assert(std::is_nothrow_move_constructible<vtype>::value, "Error");