[Bug libstdc++/59170] pretty printers: end iterator invalid pointer
redi at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Tue Dec 13 15:44:00 GMT 2016
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=59170
--- Comment #10 from Jonathan Wakely <redi at gcc dot gnu.org> ---
(In reply to Jan Kratochvil from comment #6)
> This all depends more on a different non-pretty-printers feature I plan to
> file for libstdc++ for years but I have never done so yet. With
> -D_GLIBCXX_DEBUG the iterators could be memory-managed - they already track
> their container by _M_sequence. The container could also track all its live
> iterators, elements could track iterators pointing at them (and properly
> invalidate them upon container updates) etc. Deleting the container would
> invalidate all its iterators etc. Accessing an invalidated iterator would
> then immediately assert.
This is all already done, isn't it?
Containers keep a list of active iterators (see
_Safe_sequence_base::_M_iterators) which are automatically invalidated by the
relevant container operations.
More information about the Gcc-bugs
mailing list