diff options
-rw-r--r-- | libstdc++-v3/ChangeLog | 7 | ||||
-rw-r--r-- | libstdc++-v3/config/abi/pre/gnu.ver | 1 | ||||
-rw-r--r-- | libstdc++-v3/testsuite/util/testsuite_containers.h | 17 |
3 files changed, 21 insertions, 4 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index 0399ec6..438206b 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,10 @@ +2018-10-20 François Dumont <fdumont@gcc.gnu.org> + + * testsuite/util/testsuite_containers.h + (forward_members_unordered<>::forward_members_unordered + (const value_type&)): Add local_iterator pre and post increment checks. + * config/abi/pre/gnu.ver: Add GLIBCXX_3.4.26 new symbol. + 2018-10-19 Jonathan Wakely <jwakely@redhat.com> * testsuite/23_containers/array/requirements/explicit_instantiation/ diff --git a/libstdc++-v3/config/abi/pre/gnu.ver b/libstdc++-v3/config/abi/pre/gnu.ver index f90ead3..e8cd286 100644 --- a/libstdc++-v3/config/abi/pre/gnu.ver +++ b/libstdc++-v3/config/abi/pre/gnu.ver @@ -2054,6 +2054,7 @@ GLIBCXX_3.4.26 { # std::basic_filebuf::open(const wchar_t*, openmode) _ZNSt13basic_filebufI[cw]St11char_traitsI[cw]EE4openEPKwSt13_Ios_Openmode; + _ZN11__gnu_debug25_Safe_local_iterator_base16_M_attach_singleEPNS_19_Safe_sequence_baseEb; } GLIBCXX_3.4.25; # Symbols in the support library (libsupc++) have their own tag. diff --git a/libstdc++-v3/testsuite/util/testsuite_containers.h b/libstdc++-v3/testsuite/util/testsuite_containers.h index eadd437..250dfda 100644 --- a/libstdc++-v3/testsuite/util/testsuite_containers.h +++ b/libstdc++-v3/testsuite/util/testsuite_containers.h @@ -176,11 +176,12 @@ namespace __gnu_test typename = typename std::iterator_traits<_Iterator>::iterator_category> struct iterator_concept_checks; +#if __cplusplus >= 201103L // DR 691. template<typename _Tp> struct forward_members_unordered { - forward_members_unordered(typename _Tp::value_type& v) + forward_members_unordered(const typename _Tp::value_type& v) { // Make sure that even if rel_ops is injected there is no ambiguity // when comparing iterators. @@ -196,12 +197,20 @@ namespace __gnu_test assert( container.cbegin(0) == container.begin(0) ); assert( container.cend(0) == container.end(0) ); - const typename test_type::size_type bn = container.bucket(1); - assert( container.cbegin(bn) != container.cend(bn) ); - assert( container.cbegin(bn) != container.end(bn) ); + const auto bn = container.bucket(1); + auto clit = container.cbegin(bn); + assert( clit != container.cend(bn) ); + assert( clit != container.end(bn) ); + assert( clit++ == container.cbegin(bn) ); + assert( clit == container.end(bn) ); + + clit = container.cbegin(bn); + assert( ++clit == container.cend(bn) ); + assert( container.begin(bn) != container.cend(bn) ); } }; +#endif template<typename _Iterator> struct iterator_concept_checks<_Iterator, false, |