On Tue, 20 Feb 2024 at 18:43, François Dumont wrote: > > libstdc++: [_GLIBCXX_DEBUG] Fix std::__niter_wrap behavior > > In _GLIBCXX_DEBUG mode the std::__niter_base can remove 2 layers, the > __gnu_debug::_Safe_iterator<> and the __gnu_cxx::__normal_iterator<>. > When std::__niter_wrap is called to build a __gnu_debug::_Safe_iterator<> > from a __gnu_cxx::__normal_iterator<> we then have a consistency issue > as the difference between the 2 iterators will done on a __normal_iterator > on one side and a C pointer on the other. To avoid this problem call > std::__niter_base on both input iterators. > > libstdc++-v3/ChangeLog: > > * include/bits/stl_algobase.h (std::__niter_wrap): Add a call to > std::__niter_base on res iterator. > > Tested under Linux x86_64 normal and _GLIBCXX_DEBUG modes in c++98, c++11, > c++17. > > Ok to commit ? >
OK, thanks.