This patch sets destructed vector into an invalid state, such that
subsequent calls to begin(), end(), size(), etc. all throw logic_error.
Google ref b/7248326
Ok for google/gcc-4_7 and google/integration?
Thanks,
--
Paul Pluzhnikov
Index: libstdc++-v3/include/bits/stl_vector.h
===================================================================
--- libstdc++-v3/include/bits/stl_vector.h (revision 195356)
+++ libstdc++-v3/include/bits/stl_vector.h (working copy)
@@ -159,7 +159,12 @@ _GLIBCXX_BEGIN_NAMESPACE_CONTAINER
~_Vector_base()
{ _M_deallocate(this->_M_impl._M_start, this->_M_impl._M_end_of_storage
- - this->_M_impl._M_start); }
+ - this->_M_impl._M_start);
+#if __google_stl_debug_dangling_vector
+ this->_M_impl._M_start = 0;
+ this->_M_impl._M_finish = reinterpret_cast<_Tp*>(~0UL);
+#endif
+ }
public:
_Vector_impl _M_impl;