diff options
-rw-r--r-- | libstdc++-v3/ChangeLog | 17 | ||||
-rw-r--r-- | libstdc++-v3/include/bits/basic_string.h | 3 | ||||
-rw-r--r-- | libstdc++-v3/include/ext/rc_string_base.h | 3 | ||||
-rw-r--r-- | libstdc++-v3/include/ext/sso_string_base.h | 3 | ||||
-rw-r--r-- | libstdc++-v3/testsuite/21_strings/basic_string/cons/char/42261.cc | 35 | ||||
-rw-r--r-- | libstdc++-v3/testsuite/21_strings/basic_string/cons/wchar_t/42261.cc | 35 |
6 files changed, 19 insertions, 77 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index 2297011..7566320 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -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. diff --git a/libstdc++-v3/include/bits/basic_string.h b/libstdc++-v3/include/bits/basic_string.h index a574bf6..269a75e 100644 --- a/libstdc++-v3/include/bits/basic_string.h +++ b/libstdc++-v3/include/bits/basic_string.h @@ -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* diff --git a/libstdc++-v3/include/ext/rc_string_base.h b/libstdc++-v3/include/ext/rc_string_base.h index c9fdb25..6d8c430 100644 --- a/libstdc++-v3/include/ext/rc_string_base.h +++ b/libstdc++-v3/include/ext/rc_string_base.h @@ -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* diff --git a/libstdc++-v3/include/ext/sso_string_base.h b/libstdc++-v3/include/ext/sso_string_base.h index 264e862..d88297f 100644 --- a/libstdc++-v3/include/ext/sso_string_base.h +++ b/libstdc++-v3/include/ext/sso_string_base.h @@ -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 index a83b74a..0000000 --- a/libstdc++-v3/testsuite/21_strings/basic_string/cons/char/42261.cc +++ /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 index 8782e8c..0000000 --- a/libstdc++-v3/testsuite/21_strings/basic_string/cons/wchar_t/42261.cc +++ /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; -} |