diff options
author | Jeffrey Yasskin <jyasskin@google.com> | 2012-04-12 20:59:09 +0000 |
---|---|---|
committer | Jeffrey Yasskin <jyasskin@gcc.gnu.org> | 2012-04-12 20:59:09 +0000 |
commit | 2fc9b37dd021df4f3edbda3be09bd891b5bf71e3 (patch) | |
tree | da264b4ef9803a0d4515217be60b6052e22a7450 /gcc/tree-ssa-reassoc.c | |
parent | a2547fd0d6cd351ec7fe366d770aaea296d7f70d (diff) | |
download | gcc-2fc9b37dd021df4f3edbda3be09bd891b5bf71e3.zip gcc-2fc9b37dd021df4f3edbda3be09bd891b5bf71e3.tar.gz gcc-2fc9b37dd021df4f3edbda3be09bd891b5bf71e3.tar.bz2 |
Fix PR52822 (stable_partition move-assigns object to itself) by scanning for...
Fix PR52822 (stable_partition move-assigns object to itself) by
scanning for the first value that doesn't match the predicate before
starting to rearrange values.
2012-04-03 Jeffrey Yasskin <jyasskin@google.com>
PR libstdc++/52822
* include/bits/stl_algo.h (__find_if_not): Expose in
C++98 mode.
(__find_if_not_n): Like __find_if_not, but works on and updates a
counted range instead of a bounded range.
(stable_partition): Guarantee !__pred(*__first) in call to
__stable_partition_adaptive() or __inplace_stable_partition().
(__stable_partition_adaptive): Use new precondition to avoid
moving/copying objects onto themselves. Guarantee new
precondition to recursive calls.
(__inplace_stable_partition): Use new precondition to simplify
base case, remove __last parameter. Guarantee new precondition to
recursive calls.
* testsuite/25_algorithms/stable_partition/moveable.cc (test02):
Test a sequence that starts with a value matching the predicate.
* testsuite/25_algorithms/stable_partition/pr52822.cc:
Test vectors, which have a destructive self-move-assignment.
From-SVN: r186391
Diffstat (limited to 'gcc/tree-ssa-reassoc.c')
0 files changed, 0 insertions, 0 deletions