http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59170

Jan Kratochvil <jan.kratochvil at redhat dot com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|RESOLVED                    |UNCONFIRMED
         Resolution|INVALID                     |---

--- Comment #2 from Jan Kratochvil <jan.kratochvil at redhat dot com> ---
It is fixable, only for development builds but that does not matter much IMO.
Just one has to build the executable with -D_GLIBCXX_DEBUG.

The test whether it is an end() iterator can be done by:

(gdb) whatis end
type = std::__debug::vector<int, std::allocator<int> >::iterator
s/::iterator$//
(gdb) p end._M_current._M_current == ((std::__debug::vector<int,
std::allocator<int> > *)end._M_sequence)._M_impl._M_finish
$29 = true

That is with -D_GLIBCXX_DEBUG each iterator contains:
    /** The sequence this iterator references; may be NULL to indicate
        a singular iterator. */
    _Safe_sequence_base* _M_sequence;

Reply via email to