From 05261e700c01eaeefaa00ac00df69969630b221b Mon Sep 17 00:00:00 2001 From: Paolo Carlini Date: Tue, 4 Jun 2002 20:20:38 +0200 Subject: [PATCH] 2002-06-04 Paolo Carlini Gaby Dos Reis * include/bits/basic_string.tcc (basic_string::_S_construct(forward_iterator_tag): Fix typo in null pointer check. * testsuite/21_strings/ctor_copy_dtor.cc: Add test04. Co-Authored-By: Gabriel Dos Reis From-SVN: r54255 --- libstdc++-v3/ChangeLog | 8 ++++++++ libstdc++-v3/include/bits/basic_string.tcc | 2 +- .../testsuite/21_strings/ctor_copy_dtor.cc | 14 ++++++++++++++ 3 files changed, 23 insertions(+), 1 deletion(-) diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index d6987c498f7..e1ea9e1e65a 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,11 @@ +2002-06-04 Paolo Carlini + Gaby Dos Reis + + * include/bits/basic_string.tcc + (basic_string::_S_construct(forward_iterator_tag): + Fix typo in null pointer check. + * testsuite/21_strings/ctor_copy_dtor.cc: Add test04. + 2002-06-04 Paolo Carlini * testsuite/22_locale/money_get_members_char.cc diff --git a/libstdc++-v3/include/bits/basic_string.tcc b/libstdc++-v3/include/bits/basic_string.tcc index 3f4b5fb73ca..296d43ab1d9 100644 --- a/libstdc++-v3/include/bits/basic_string.tcc +++ b/libstdc++-v3/include/bits/basic_string.tcc @@ -140,7 +140,7 @@ namespace std size_type __dnew = static_cast(distance(__beg, __end)); // NB: Not required, but considered best practice. - if (__builtin_expect(__beg == _InIter(0), 0)) + if (__builtin_expect(__beg == _InIter(), 0)) __throw_logic_error("attempt to create string with null pointer"); if (__beg == __end && __a == _Alloc()) diff --git a/libstdc++-v3/testsuite/21_strings/ctor_copy_dtor.cc b/libstdc++-v3/testsuite/21_strings/ctor_copy_dtor.cc index 9247a9904b8..ea22cfc2aa2 100644 --- a/libstdc++-v3/testsuite/21_strings/ctor_copy_dtor.cc +++ b/libstdc++-v3/testsuite/21_strings/ctor_copy_dtor.cc @@ -201,11 +201,25 @@ void test03() } } +// http://gcc.gnu.org/ml/libstdc++/2002-06/msg00025.html +void test04() +{ + bool test = true; + + std::string str01("portofino"); + + std::string::reverse_iterator i1 = str01.rbegin(); + std::string::reverse_iterator i2 = str01.rend(); + std::string str02(i1, i2); + VERIFY( str02 == "onifotrop" ); +} + int main() { __set_testsuite_memlimit(); test01(); test02(); test03(); + test04(); return 0; } -- 2.30.2