]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
re PR libstdc++/6513 (sigfaults on trivial code)
authorPaolo Carlini <pcarlini@unitus.it>
Wed, 1 May 2002 02:17:35 +0000 (04:17 +0200)
committerPaolo Carlini <paolo@gcc.gnu.org>
Wed, 1 May 2002 02:17:35 +0000 (02:17 +0000)
2002-05-01  Paolo Carlini  <pcarlini@unitus.it>

PR libstdc++/6513
* include/bits/stl_uninitialized.h
(uninitialized_copy(_InputIter, _InputIter, _ForwardIter)):
Fix typo in 2001-07-17 commit: typedef _ValueType to
iterator_traits<_ForwardIter> not <_InputIter>.
* testsuite/23_containers/vector_ctor.cc: Add test04.

From-SVN: r52985

libstdc++-v3/ChangeLog
libstdc++-v3/include/bits/stl_uninitialized.h
libstdc++-v3/testsuite/23_containers/vector_ctor.cc

index 7394140d57a5926bab3e66954d63a9a88d1db9fd..ab097808f5471dd7516a6e7a8dc3ad897b5591f1 100644 (file)
@@ -1,3 +1,12 @@
+2002-05-01  Paolo Carlini  <pcarlini@unitus.it>
+
+       PR libstdc++/6513
+       * include/bits/stl_uninitialized.h
+       (uninitialized_copy(_InputIter, _InputIter, _ForwardIter)):
+       Fix typo in 2001-07-17 commit: typedef _ValueType to
+       iterator_traits<_ForwardIter> not <_InputIter>.
+       * testsuite/23_containers/vector_ctor.cc: Add test04.
+
 2002-04-30  John David Anglin  <dave@hiauly1.hia.nrc.ca>
        
        PR libstdc++/6501
index 866b20bf37e7a6d42fe1d0b6885594b258a2648c..b5f7b8c40b6974843c4e8cdda9a4ecb680ea4e07 100644 (file)
@@ -107,7 +107,7 @@ namespace std
     inline _ForwardIter
     uninitialized_copy(_InputIter __first, _InputIter __last, _ForwardIter __result)
     {
-      typedef typename iterator_traits<_InputIter>::value_type _ValueType;
+      typedef typename iterator_traits<_ForwardIter>::value_type _ValueType;
       typedef typename __type_traits<_ValueType>::is_POD_type _Is_POD;
       return __uninitialized_copy_aux(__first, __last, __result, _Is_POD());
     }
index 6ac74e778a676b460c33ea65b1685202ffb5505f..c5caf3d797e3a8290a49bd5305413180574985fb 100644 (file)
@@ -21,6 +21,7 @@
 // 23.2.4.1 vector constructors, copy, and assignment
 
 #include <vector>
+#include <string>
 #include <testsuite_hooks.h>
 
 template<typename T>
@@ -81,11 +82,24 @@ test03()
 #endif
 }
 
+// libstdc++/6513
+void test04()
+{
+  bool test = true;
+  const char* c_strings[5] = { "1", "2", "3", "4", "5" };
+  std::vector<std::string> strings(c_strings, c_strings + 5);
+
+#ifdef DEBUG_ASSERT
+  assert(test);
+#endif
+}
+
 int main()
 {
   test01();
   test02(); 
   test03();
+  test04();
 
   return 0;
 }