]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
revert: re PR libstdc++/42261 (infinite recursion from string(string::size_type(6...
authorPaolo Carlini <paolo.carlini@oracle.com>
Thu, 10 Dec 2009 17:17:41 +0000 (17:17 +0000)
committerPaolo Carlini <paolo@gcc.gnu.org>
Thu, 10 Dec 2009 17:17:41 +0000 (17:17 +0000)
2009-12-10  Paolo Carlini  <paolo.carlini@oracle.com>

Revert:
        2009-12-03  Paolo Carlini  <paolo.carlini@oracle.com>

PR libstdc++/42261
* include/bits/basic_string.h (_S_construct_aux(_Integer, _Integer,
const _Alloc&, __true_type)): Cast the second argument to value_type.
* include/ext/sso_string_base.h (_M_construct_aux(_Integer, _Integer,
std::__true_type)): Likewise.
* include/ext/rc_string_base.h (_S_construct_aux(_Integer, _Integer,
const _Alloc&, std::__true_type)): Likewise.
* testsuite/21_strings/basic_string/cons/char/42261.cc: New.
* testsuite/21_strings/basic_string/cons/wchar_t/42261.cc: Likewise.

From-SVN: r155132

libstdc++-v3/ChangeLog
libstdc++-v3/include/bits/basic_string.h
libstdc++-v3/include/ext/rc_string_base.h
libstdc++-v3/include/ext/sso_string_base.h
libstdc++-v3/testsuite/21_strings/basic_string/cons/char/42261.cc [deleted file]
libstdc++-v3/testsuite/21_strings/basic_string/cons/wchar_t/42261.cc [deleted file]

index 22970112aa4018ca25f520f7bafd4bcd089206de..756632022528767fc751c12e792eabe1e72fe85d 100644 (file)
@@ -1,7 +1,22 @@
+2009-12-10  Paolo Carlini  <paolo.carlini@oracle.com>
+
+       Revert:
+        2009-12-03  Paolo Carlini  <paolo.carlini@oracle.com>
+
+       PR libstdc++/42261
+       * include/bits/basic_string.h (_S_construct_aux(_Integer, _Integer,
+       const _Alloc&, __true_type)): Cast the second argument to value_type.
+       * include/ext/sso_string_base.h (_M_construct_aux(_Integer, _Integer,
+       std::__true_type)): Likewise.
+       * include/ext/rc_string_base.h (_S_construct_aux(_Integer, _Integer,
+       const _Alloc&, std::__true_type)): Likewise.
+       * testsuite/21_strings/basic_string/cons/char/42261.cc: New.
+       * testsuite/21_strings/basic_string/cons/wchar_t/42261.cc: Likewise.
+
 2009-12-10  Paolo Carlini  <paolo.carlini@oracle.com>
 
        * testsuite/util/testsuite_containers.h (populate<>::populate(_Tp&)):
-       Avoid used uninitialized warning. 
+       Avoid used uninitialized warning.
        * include/ext/pb_ds/detail/cc_hash_table_map_/
        constructor_destructor_fn_imps.hpp: Fix typo causing sequence point
        warning.
index a574bf62f8789490d5090116d0a9d200e6ee5e76..269a75ed46817a51f9701d14f05db4b1ecf67eae 100644 (file)
@@ -1588,8 +1588,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
         static _CharT*
         _S_construct_aux(_Integer __beg, _Integer __end,
                         const _Alloc& __a, __true_type)
-        { return _S_construct(static_cast<size_type>(__beg),
-                             static_cast<value_type>(__end), __a); }
+        { return _S_construct(static_cast<size_type>(__beg), __end, __a); }
 
       template<class _InIterator>
         static _CharT*
index c9fdb25317d38ea2d963d57873e960ad9b2b5be8..6d8c430d57503e718a0958fea04cadb291c7baab 100644 (file)
@@ -231,8 +231,7 @@ _GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
         static _CharT*
         _S_construct_aux(_Integer __beg, _Integer __end,
                         const _Alloc& __a, std::__true_type)
-       { return _S_construct(static_cast<size_type>(__beg),
-                             static_cast<value_type>(__end), __a); }
+       { return _S_construct(static_cast<size_type>(__beg), __end, __a); }
 
       template<typename _InIterator>
         static _CharT*
index 264e862e96ae9a3953c37b2b61229526e170992e..d88297fc36e55ba249ef92fb793e7fe78100245b 100644 (file)
@@ -106,8 +106,7 @@ _GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
       template<typename _Integer>
         void
         _M_construct_aux(_Integer __beg, _Integer __end, std::__true_type)
-      { _M_construct(static_cast<size_type>(__beg),
-                    static_cast<value_type>(__end)); }
+       { _M_construct(static_cast<size_type>(__beg), __end); }
 
       template<typename _InIterator>
         void
diff --git a/libstdc++-v3/testsuite/21_strings/basic_string/cons/char/42261.cc b/libstdc++-v3/testsuite/21_strings/basic_string/cons/char/42261.cc
deleted file mode 100644 (file)
index a83b74a..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-// Copyright (C) 2009 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 <string>
-#include <testsuite_hooks.h>
-
-// libstdc++/42261
-void test01()
-{
-  bool test __attribute__((unused)) = true;
-  using namespace std;
-
-  const string s(string::size_type(6), string::size_type('f'));
-  VERIFY( s == "ffffff" );
-}
-
-int main()
-{
-  test01();
-  return 0;
-}
diff --git a/libstdc++-v3/testsuite/21_strings/basic_string/cons/wchar_t/42261.cc b/libstdc++-v3/testsuite/21_strings/basic_string/cons/wchar_t/42261.cc
deleted file mode 100644 (file)
index 8782e8c..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-// Copyright (C) 2009 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 <string>
-#include <testsuite_hooks.h>
-
-// libstdc++/42261
-void test01()
-{
-  bool test __attribute__((unused)) = true;
-  using namespace std;
-
-  const wstring s(wstring::size_type(6), wstring::size_type(L'f'));
-  VERIFY( s == L"ffffff" );
-}
-
-int main()
-{
-  test01();
-  return 0;
-}