Issue Details (XML | Word | Printable)

Key: STDCXX-629
Type: Bug Bug
Status: Reopened Reopened
Priority: Minor Minor
Assignee: Unassigned
Reporter: Farid Zaripov
Votes: 0
Watchers: 0
Operations

If you were logged in you would be able to see more operations.
C++ Standard Library

std::string::assign (reverse_iterator, reverse_iterator) assigning self incorrect

Created: 01/Nov/07 06:10 PM   Updated: 11/Jul/09 12:06 AM
Return to search
Component/s: 21. Strings
Affects Version/s: 4.1.2, 4.1.3, 4.1.4, 4.2.0
Fix Version/s: 4.3.0

Time Tracking:
Not Specified

Environment: All
Issue Links:
Dependants
 
dependent
 

Severity: Incorrect Behavior


 Description  « Hide
The 21.string.assign.cpp test has been failing a number of assertions for self-referential test cases that exercise the ability to assign a substring of a string into itself using the assign(InputIterator, InputIterator) member template specialization for InputIterator being an actual reverse_iterator. The program below reproduces the problem in a small isolated test case.

#include <cassert>
#include <string>

int main ()
{
std::string s ("abc");
s.assign (s.rbegin () + 1, s.rend ());
assert ("ba" == s);
}



 All   Comments   Work Log   Change History   Subversion Commits      Sort Order: Ascending order - Click to sort in descending order
Repository Revision Date User Message
ASF #635444 Mon Mar 10 06:03:34 UTC 2008 faridz 2008-03-10 Farid Zaripov <farid_zaripov@epam.com>

* tests/regress/21.string.assign.STDCXX-629.cpp: Regression
test for STDCXX-629 issue.
Files Changed
ADD /stdcxx/trunk/tests/regress/21.string.assign.stdcxx-629.cpp

Repository Revision Date User Message
ASF #643535 Tue Apr 01 19:43:23 UTC 2008 faridz 2008-04-01 Farid Zaripov <farid_zaripov@epam.com>

* etc/config/xfail.txt (21.string.assign.STDCXX-629): Added an expected test
failure due to STDCXX-629.
(21.string.insert.STDCXX-632): Added an expected test failure due to STDCXX-632.
(21.string.replace.STDCXX-170): Added an expected test failure due to STDCXX-170.
Files Changed
MODIFY /stdcxx/trunk/etc/config/xfail.txt

Repository Revision Date User Message
ASF #660333 Mon May 26 23:16:03 UTC 2008 sebor 2008-05-26 Martin Sebor <sebor@roguewave.com>

Merged revs 650369 650374 650370 650361 629551 635441 650360 650356
635444 650366 637959 650352 650353 from trunk.

2008-04-21 Martin Sebor <sebor@roguewave.com>

* tests/regress/27.stringbuf.seekoff.STDCXX-295.cpp: Added
a regression test for STDCXX-295.

2008-04-21 Martin Sebor <sebor@roguewave.com>

* tests/regress/21.char.traits.find.STDCXX-541.cpp: Added a regression
test for STDCXX-541.

2008-04-21 Martin Sebor <sebor@roguewave.com>

* tests/regress/23.vector.cons.STDCXX-294.cpp: Added a regression
test for STDCXX-294.

2008-04-21 Martin Sebor <sebor@roguewave.com>

* tests/regress/25.random.shuffle.STDCXX-126.cpp: Added
a regression test for STDCXX-126.

2008-02-20 Farid Zaripov <farid_zaripov@epam.com>

* tests/regress/21.string.replace.STDCXX-170.cpp: New
regression test for STDCXX-170 issue.

2008-03-10 Farid Zaripov <farid_zaripov@epam.com>

* tests/regress/21.string.replace.STDCXX-170.cpp: Added testcase with
_InputIter as string::iterator. Removed testcase with _InputIter as
UChar* (this testcase would fail), testing with _InputIter as char*
instead.

2008-04-21 Martin Sebor <sebor@roguewave.com>

* tests/regress/27.stringbuf.overflow.STDCXX-149.cpp: Added
a regression test for STDCXX-149.

2008-04-21 Martin Sebor <sebor@roguewave.com>

* tests/regress/27.filebuf.sgetn.STDCXX-161.cpp: Added a regression
test for STDCXX-161.

2008-03-10 Farid Zaripov <farid_zaripov@epam.com>

* tests/regress/21.string.assign.STDCXX-629.cpp: Regression
test for STDCXX-629 issue.

2008-04-21 Martin Sebor <sebor@roguewave.com>

* tests/regress/26.valarray.cshift.STDCXX-316.cpp: Added
a regression test for STDCXX-316.

2008-03-17 Farid Zaripov <farid_zaripov@epam.com>

* tests/regress/21.string.insert.STDCXX-632.cpp: Regression test for
STDCXX-632.

2008-04-21 Martin Sebor <sebor@roguewave.com>

* tests/regress/27.istream.get.STDCXX-60.cpp: Added a regression
test for STDCXX-60.

2008-04-21 Martin Sebor <sebor@roguewave.com>

* tests/regress/27.istream.getline.STDCXX-59.cpp: Added a regression
test for STDCXX-59.
Files Changed
ADD /stdcxx/branches/4.2.x/tests/regress/27.stringbuf.seekoff.stdcxx-295.cpp (from /stdcxx/trunk/tests/regress/27.stringbuf.seekoff.stdcxx-295.cpp)
ADD /stdcxx/branches/4.2.x/tests/regress/26.valarray.cshift.stdcxx-316.cpp (from /stdcxx/trunk/tests/regress/26.valarray.cshift.stdcxx-316.cpp)
ADD /stdcxx/branches/4.2.x/tests/regress/21.char.traits.find.stdcxx-541.cpp (from /stdcxx/trunk/tests/regress/21.char.traits.find.stdcxx-541.cpp)
ADD /stdcxx/branches/4.2.x/tests/regress/21.string.insert.stdcxx-632.cpp (from /stdcxx/trunk/tests/regress/21.string.insert.stdcxx-632.cpp)
ADD /stdcxx/branches/4.2.x/tests/regress/23.vector.cons.stdcxx-294.cpp (from /stdcxx/trunk/tests/regress/23.vector.cons.stdcxx-294.cpp)
ADD /stdcxx/branches/4.2.x/tests/regress/25.random.shuffle.stdcxx-126.cpp (from /stdcxx/trunk/tests/regress/25.random.shuffle.stdcxx-126.cpp)
ADD /stdcxx/branches/4.2.x/tests/regress/21.string.assign.stdcxx-629.cpp (from /stdcxx/trunk/tests/regress/21.string.assign.stdcxx-629.cpp)
ADD /stdcxx/branches/4.2.x/tests/regress/27.filebuf.sgetn.stdcxx-161.cpp (from /stdcxx/trunk/tests/regress/27.filebuf.sgetn.stdcxx-161.cpp)
ADD /stdcxx/branches/4.2.x/tests/regress/27.istream.getline.stdcxx-59.cpp (from /stdcxx/trunk/tests/regress/27.istream.getline.stdcxx-59.cpp)
ADD /stdcxx/branches/4.2.x/tests/regress/27.stringbuf.overflow.stdcxx-149.cpp (from /stdcxx/trunk/tests/regress/27.stringbuf.overflow.stdcxx-149.cpp)
ADD /stdcxx/branches/4.2.x/tests/regress/27.istream.get.stdcxx-60.cpp (from /stdcxx/trunk/tests/regress/27.istream.get.stdcxx-60.cpp)
ADD /stdcxx/branches/4.2.x/tests/regress/21.string.replace.stdcxx-170.cpp (from /stdcxx/trunk/tests/regress/21.string.replace.stdcxx-170.cpp)