diff options
| author | fdumont <fdumont@138bc75d-0d04-0410-961f-82ee72b054a4> | 2012-08-03 19:34:49 +0000 |
|---|---|---|
| committer | fdumont <fdumont@138bc75d-0d04-0410-961f-82ee72b054a4> | 2012-08-03 19:34:49 +0000 |
| commit | de5c1bf2c2204bb78d722b95f7b3b5f7103933ae (patch) | |
| tree | 955c2c5be91389fca2a91f51a44dfdd6ec1e006f /libstdc++-v3/include/debug | |
| parent | 251be4aa671cddb5381b4dffb3b12c65df7037b2 (diff) | |
| download | ppe42-gcc-de5c1bf2c2204bb78d722b95f7b3b5f7103933ae.tar.gz ppe42-gcc-de5c1bf2c2204bb78d722b95f7b3b5f7103933ae.zip | |
2012-08-03 François Dumont <fdumont@gcc.gnu.org>
* include/debug/functions.h (__check_partition_lower_aux): Remove
redundant comparison with pivot value.
(__check_partition_upper_aux): Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@190134 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libstdc++-v3/include/debug')
| -rw-r--r-- | libstdc++-v3/include/debug/functions.h | 80 |
1 files changed, 56 insertions, 24 deletions
diff --git a/libstdc++-v3/include/debug/functions.h b/libstdc++-v3/include/debug/functions.h index b2817d5ef1c..b59309e2185 100644 --- a/libstdc++-v3/include/debug/functions.h +++ b/libstdc++-v3/include/debug/functions.h @@ -354,8 +354,12 @@ namespace __gnu_debug { while (__first != __last && *__first < __value) ++__first; - while (__first != __last && !(*__first < __value)) - ++__first; + if (__first != __last) + { + ++__first; + while (__first != __last && !(*__first < __value)) + ++__first; + } return __first == __last; } @@ -368,8 +372,10 @@ namespace __gnu_debug const _Safe_iterator<_Iterator, _Sequence>& __last, const _Tp& __value, std::random_access_iterator_tag __tag) - { return __check_partitioned_lower_aux(__first.base(), __last.base(), - __value, __tag); } + { + return __check_partitioned_lower_aux(__first.base(), __last.base(), + __value, __tag); + } // _GLIBCXX_RESOLVE_LIB_DEFECTS // 270. Binary search requirements overly strict @@ -378,8 +384,10 @@ namespace __gnu_debug inline bool __check_partitioned_lower(_ForwardIterator __first, _ForwardIterator __last, const _Tp& __value) - { return __check_partitioned_lower_aux(__first, __last, __value, - std::__iterator_category(__first)); } + { + return __check_partitioned_lower_aux(__first, __last, __value, + std::__iterator_category(__first)); + } template<typename _ForwardIterator, typename _Tp> inline bool @@ -389,8 +397,12 @@ namespace __gnu_debug { while (__first != __last && !(__value < *__first)) ++__first; - while (__first != __last && __value < *__first) - ++__first; + if (__first != __last) + { + ++__first; + while (__first != __last && __value < *__first) + ++__first; + } return __first == __last; } @@ -403,15 +415,19 @@ namespace __gnu_debug const _Safe_iterator<_Iterator, _Sequence>& __last, const _Tp& __value, std::random_access_iterator_tag __tag) - { return __check_partitioned_upper_aux(__first.base(), __last.base(), - __value, __tag); } + { + return __check_partitioned_upper_aux(__first.base(), __last.base(), + __value, __tag); + } template<typename _ForwardIterator, typename _Tp> inline bool __check_partitioned_upper(_ForwardIterator __first, _ForwardIterator __last, const _Tp& __value) - { return __check_partitioned_upper_aux(__first, __last, __value, - std::__iterator_category(__first)); } + { + return __check_partitioned_upper_aux(__first, __last, __value, + std::__iterator_category(__first)); + } template<typename _ForwardIterator, typename _Tp, typename _Pred> inline bool @@ -422,8 +438,12 @@ namespace __gnu_debug { while (__first != __last && bool(__pred(*__first, __value))) ++__first; - while (__first != __last && !bool(__pred(*__first, __value))) - ++__first; + if (__first != __last) + { + ++__first; + while (__first != __last && !bool(__pred(*__first, __value))) + ++__first; + } return __first == __last; } @@ -437,8 +457,10 @@ namespace __gnu_debug const _Safe_iterator<_Iterator, _Sequence>& __last, const _Tp& __value, _Pred __pred, std::random_access_iterator_tag __tag) - { return __check_partitioned_lower_aux(__first.base(), __last.base(), - __value, __pred, __tag); } + { + return __check_partitioned_lower_aux(__first.base(), __last.base(), + __value, __pred, __tag); + } // Determine if a sequence is partitioned w.r.t. this element. template<typename _ForwardIterator, typename _Tp, typename _Pred> @@ -446,8 +468,10 @@ namespace __gnu_debug __check_partitioned_lower(_ForwardIterator __first, _ForwardIterator __last, const _Tp& __value, _Pred __pred) - { return __check_partitioned_lower_aux(__first, __last, __value, __pred, - std::__iterator_category(__first)); } + { + return __check_partitioned_lower_aux(__first, __last, __value, __pred, + std::__iterator_category(__first)); + } template<typename _ForwardIterator, typename _Tp, typename _Pred> inline bool @@ -458,8 +482,12 @@ namespace __gnu_debug { while (__first != __last && !bool(__pred(__value, *__first))) ++__first; - while (__first != __last && bool(__pred(__value, *__first))) - ++__first; + if (__first != __last) + { + ++__first; + while (__first != __last && bool(__pred(__value, *__first))) + ++__first; + } return __first == __last; } @@ -473,16 +501,20 @@ namespace __gnu_debug const _Safe_iterator<_Iterator, _Sequence>& __last, const _Tp& __value, _Pred __pred, std::random_access_iterator_tag __tag) - { return __check_partitioned_upper_aux(__first.base(), __last.base(), - __value, __pred, __tag); } + { + return __check_partitioned_upper_aux(__first.base(), __last.base(), + __value, __pred, __tag); + } template<typename _ForwardIterator, typename _Tp, typename _Pred> inline bool __check_partitioned_upper(_ForwardIterator __first, _ForwardIterator __last, const _Tp& __value, _Pred __pred) - { return __check_partitioned_upper_aux(__first, __last, __value, __pred, - std::__iterator_category(__first)); } + { + return __check_partitioned_upper_aux(__first, __last, __value, __pred, + std::__iterator_category(__first)); + } // Helper struct to detect random access safe iterators. template<typename _Iterator> |

