This is the mail archive of the
mailing list for the libstdc++ project.
Re: [patch][google/integration] Add lightweight checks to vector::begin et. al. (issue4973065)
On 6 September 2011 20:23, Jonathan Wakely wrote:
> What's a dangling vector anyway? ?One that has been moved from?
Apparently not, since a moved-from vector would pass __valid() (as
indeed it should)
So I'm quite curious what bugs this catches. The existing debug mode
catches some fairly subtle cases of user error such as comparing
iterators from different containers, or dereferencing past-the-end
iterators. This patch seems to catch user errors related to ... what?
Heap corruption? Using a vector after its destructor runs? Those
are pretty serious, un-subtle errors and not specific to vector, so
why add code to vector (code which isn't 100% reliable if it only
catches corruption after the memory is reused and new data written to
it) to detect more general problems that can happen to any type?
The fact the patch did catch real bugs doesn't mean it's a good idea,
as you say, those bugs probably could have been caught in other ways.