This is the mail archive of the libstdc++@gcc.gnu.org mailing list for the libstdc++ project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Testsuite cleanup


This patch performs some cleanup and extensions to the testsuite. I hope this patch, while big, is mostly obvious. If you'd like it in some smaller, better defined chunks, I'll split it up. After this patch, I believe the only parts of chapter 25 which is not updated for C++0x and tested are stable_partition, stable_sort and inplace_merge. I have another patch for those in the pipeline.

I draw attention to two parts of this patch:

1) _GLIBCXX_TESTSUITE_ALLOW_RVALREF_ALIASING was only necessary while we had C++03 rvalue-emulation. Now it is removable, so I do so.

2) The following code:

template<typename U>
void function(const U& u) { ... }

template<typename U>
void function(U&& u) { ... }

Is almost certainly wrong, wherever it is written. The problem is that non-const lvalues will match the second function call, with U = int& (for example). If we then move from the u, code will break.



Attachment: testsuite_cleanup.patch
Description: Binary data



    2009-08-30  Chris Jefferson <chris@bubblescope.net>
	* testsuite/25_algorithms/copy_n/move_iterators/1.cc: Remove
	_GLIBCXX_TESTSUITE_ALLOW_RVALREF_ALIASING.
	* testsuite/25_algorithms/inplace_merge/1.cc: Fix broken test.
	* testsuite/25_algorithms/move_backward/1.cc: Remove
	_GLIBCXX_TESTSUITE_ALLOW_RVALREF_ALIASING.
	* testsuite/25_algorithms/move/1.cc: Likewise.
	* testsuite/25_algorithms/copy_backward/move_iterators/1.cc: Likewise.
	* testsuite/25_algorithms/copy/move_iterators/1.cc: Likewise.
	* testsuite/25_algorithms/random_shuffle/moveable.cc: New.
	* testsuite/25_algorithms/nth_element/moveable.cc: Add test for
	predicated version.
	* testsuite/25_algorithms/partial_sort/moveable.cc: Remove
	_GLIBCXX_TESTSUITE_ALLOW_RVALREF_ALIASING and add test for predicated
	version.
	* testsuite/25_algorithms/next_permutation/moveable.cc: New.
	* testsuite/25_algorithms/sort/moveable.cc: Enable, Remove
	_GLIBCXX_TESTSUITE_ALLOW_RVALREF_ALIASING, add predicated version test.
	* testsuite/25_algorithms/prev_permutation/moveable.cc: New.
	* testsuite/25_algorithms/unique/moveable.cc: Add test for predicated
	version.
	* testsuite/25_algorithms/heap/moveable2.cc: New.
	* testsuite/25_algorithms/heap/moveable.cc: Remove
	_GLIBCXX_TESTSUITE_ALLOW_RVALREF_ALIASING.
	* testsuite/util/testsuite_rvalref.h: Remove
	_GLIBCXX_TESTSUITE_ALLOW_RVALREF_ALIASING.
	* testsuite/util/testsuite_iterators.h: Fix invalid moving bug in
	C++0x mode.
	* testsuite/20_util/specialized_algorithms/uninitialized_copy_n/
	move_iterators/1.cc: Remove _GLIBCXX_TESTSUITE_ALLOW_RVALREF_ALIASING.
	* testsuite/20_util/specialized_algorithms/uninitialized_copy/
	move_iterators/1.cc: Likewise.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]