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.

Reply via email to