PR libstdc++/58764 (again)
authorJonathan Wakely <jwakely@redhat.com>
Wed, 22 Jan 2014 23:50:58 +0000 (23:50 +0000)
committerJonathan Wakely <redi@gcc.gnu.org>
Wed, 22 Jan 2014 23:50:58 +0000 (23:50 +0000)
PR libstdc++/58764 (again)
* include/bits/stl_list.h (list): Make default constructor's exception
specification conditional.
* include/bits/stl_vector.h (vector): Likewise.
* testsuite/util/testsuite_allocator.h (SimpleAllocator): Add noexcept
to default constructor.
* testsuite/23_containers/list/requirements/dr438/assign_neg.cc:
Adjust dg-error line number.
* testsuite/23_containers/list/requirements/dr438/constructor_1_neg.cc:
Likewise.
* testsuite/23_containers/list/requirements/dr438/constructor_2_neg.cc:
Likewise.
* testsuite/23_containers/list/requirements/dr438/insert_neg.cc:
Likewise.
* testsuite/23_containers/vector/requirements/dr438/assign_neg.cc:
Likewise.
* testsuite/23_containers/vector/requirements/dr438/
constructor_1_neg.cc: Likewise.
* testsuite/23_containers/vector/requirements/dr438/
constructor_2_neg.cc: Likewise.
* testsuite/23_containers/vector/requirements/dr438/insert_neg.cc:
Likewise.

From-SVN: r206946

12 files changed:
libstdc++-v3/ChangeLog
libstdc++-v3/include/bits/stl_list.h
libstdc++-v3/include/bits/stl_vector.h
libstdc++-v3/testsuite/23_containers/list/requirements/dr438/assign_neg.cc
libstdc++-v3/testsuite/23_containers/list/requirements/dr438/constructor_1_neg.cc
libstdc++-v3/testsuite/23_containers/list/requirements/dr438/constructor_2_neg.cc
libstdc++-v3/testsuite/23_containers/list/requirements/dr438/insert_neg.cc
libstdc++-v3/testsuite/23_containers/vector/requirements/dr438/assign_neg.cc
libstdc++-v3/testsuite/23_containers/vector/requirements/dr438/constructor_1_neg.cc
libstdc++-v3/testsuite/23_containers/vector/requirements/dr438/constructor_2_neg.cc
libstdc++-v3/testsuite/23_containers/vector/requirements/dr438/insert_neg.cc
libstdc++-v3/testsuite/util/testsuite_allocator.h

index 7b8e7b6..3d78f78 100644 (file)
        * testsuite/23_containers/vector/requirements/dr438/insert_neg.cc:
        Likewise.
 
+       PR libstdc++/58764 (again)
+       * include/bits/stl_list.h (list): Make default constructor's exception
+       specification conditional.
+       * include/bits/stl_vector.h (vector): Likewise.
+       * testsuite/util/testsuite_allocator.h (SimpleAllocator): Add noexcept
+       to default constructor.
+       * testsuite/23_containers/list/requirements/dr438/assign_neg.cc:
+       Adjust dg-error line number.
+       * testsuite/23_containers/list/requirements/dr438/constructor_1_neg.cc:
+       Likewise.
+       * testsuite/23_containers/list/requirements/dr438/constructor_2_neg.cc:
+       Likewise.
+       * testsuite/23_containers/list/requirements/dr438/insert_neg.cc:
+       Likewise.
+       * testsuite/23_containers/vector/requirements/dr438/assign_neg.cc:
+       Likewise.
+       * testsuite/23_containers/vector/requirements/dr438/
+       constructor_1_neg.cc: Likewise.
+       * testsuite/23_containers/vector/requirements/dr438/
+       constructor_2_neg.cc: Likewise.
+       * testsuite/23_containers/vector/requirements/dr438/insert_neg.cc:
+       Likewise.
+
 2014-01-21  Tim Shen  <timshen91@gmail.com>
 
        * include/bits/regex.tcc: Remove incorrect `nosubs` handling.
index 19bb189..e014fbc 100644 (file)
@@ -530,7 +530,10 @@ _GLIBCXX_BEGIN_NAMESPACE_CONTAINER
       /**
        *  @brief  Creates a %list with no elements.
        */
-      list() _GLIBCXX_NOEXCEPT
+      list()
+#if __cplusplus >= 201103L
+      noexcept(is_nothrow_default_constructible<_Node_alloc_type>::value)
+#endif
       : _Base() { }
 
       /**
index 14284aa..f482957 100644 (file)
@@ -246,7 +246,11 @@ _GLIBCXX_BEGIN_NAMESPACE_CONTAINER
       /**
        *  @brief  Creates a %vector with no elements.
        */
-      vector() _GLIBCXX_NOEXCEPT : _Base() { }
+      vector()
+#if __cplusplus >= 201103L
+      noexcept(is_nothrow_default_constructible<_Alloc>::value)
+#endif
+      : _Base() { }
 
       /**
        *  @brief  Creates a %vector with no elements.
index fed7829..7c29a2d 100644 (file)
@@ -18,7 +18,7 @@
 // <http://www.gnu.org/licenses/>.
 
 // { dg-do compile }
-// { dg-error "no matching" "" { target *-*-* } 1653 }
+// { dg-error "no matching" "" { target *-*-* } 1656 }
 
 #include <list>
 
index f5eae4f..382d985 100644 (file)
@@ -18,7 +18,7 @@
 // <http://www.gnu.org/licenses/>.
 
 // { dg-do compile }
-// { dg-error "no matching" "" { target *-*-* } 1605 }
+// { dg-error "no matching" "" { target *-*-* } 1608 }
 
 #include <list>
 
index e0fbe97..14585af 100644 (file)
@@ -18,7 +18,7 @@
 // <http://www.gnu.org/licenses/>.
 
 // { dg-do compile }
-// { dg-error "no matching" "" { target *-*-* } 1605 }
+// { dg-error "no matching" "" { target *-*-* } 1608 }
 
 #include <list>
 #include <utility>
index 3904624..a9f9f30 100644 (file)
@@ -18,7 +18,7 @@
 // <http://www.gnu.org/licenses/>.
 
 // { dg-do compile }
-// { dg-error "no matching" "" { target *-*-* } 1605 }
+// { dg-error "no matching" "" { target *-*-* } 1608 }
 
 #include <list>
 
index cfbe734..a12b116 100644 (file)
@@ -18,7 +18,7 @@
 // <http://www.gnu.org/licenses/>.
 
 // { dg-do compile }
-// { dg-error "no matching" "" { target *-*-* } 1312 }
+// { dg-error "no matching" "" { target *-*-* } 1316 }
 
 #include <vector>
 
index 88b6e0e..b839ccc 100644 (file)
@@ -18,7 +18,7 @@
 // <http://www.gnu.org/licenses/>.
 
 // { dg-do compile }
-// { dg-error "no matching" "" { target *-*-* } 1238 }
+// { dg-error "no matching" "" { target *-*-* } 1242 }
 
 #include <vector>
 
index 94cc4ba..e9e966b 100644 (file)
@@ -18,7 +18,7 @@
 // <http://www.gnu.org/licenses/>.
 
 // { dg-do compile }
-// { dg-error "no matching" "" { target *-*-* } 1238 }
+// { dg-error "no matching" "" { target *-*-* } 1242 }
 
 #include <vector>
 #include <utility>
index de61175..71c6c49 100644 (file)
@@ -18,7 +18,7 @@
 // <http://www.gnu.org/licenses/>.
 
 // { dg-do compile }
-// { dg-error "no matching" "" { target *-*-* } 1353 }
+// { dg-error "no matching" "" { target *-*-* } 1357 }
 
 #include <vector>
 
index 2cead66..748557c 100644 (file)
@@ -454,7 +454,7 @@ namespace __gnu_test
     {
       typedef Tp value_type;
 
-      SimpleAllocator() { }
+      SimpleAllocator() noexcept { }
 
       template <class T>
         SimpleAllocator(const SimpleAllocator<T>& other) { }