https://gcc.gnu.org/bugzilla/show_bug.cgi?id=56109

Jonathan Wakely <redi at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Assignee|redi at gcc dot gnu.org            |unassigned at gcc dot 
gnu.org
             Status|ASSIGNED                    |NEW

--- Comment #3 from Jonathan Wakely <redi at gcc dot gnu.org> ---
The __google_stl_* checks were added by these commits ...

Strict weak ordering checks in algos and RB trees:
8cc511b5e5c0814584644c90cb0d65d27182eddd

Invariant checks and range checks in vector<bool>:
ceeb7c3b17883b21f523ab0bef937f654b12eceb

Range checks in deque: 0681de38f1f402ad5f1fd9cf9959f304c36f7c10

Non-empty checks in vector: 2b4e2a67ff643ebdc4dababd95010699918ad9e0
Dead stores in vector dtor: e1a3b2e088d16544b6b64e483e12ae77a813a274
Invariant checks in vector: 7a058129926f4838bc1344f3674c1a35052a03e4
Range checks in vector and vstring, scribbling in cleared vstring:
13480920300b3cf5f09d408fe249c873fbef1ee0

All the range checks and non-empty checks should be already enabled by
_GLIBCXX_ASSERTIONS.

The invariant checking and strict weak order checks may be too expensive to add
to _GLIBCXX_ASSERTIONS.

We could consider adding the dead stores in the destructors to wipe out the
memory, so that subsequent accesses fail fast. Those stores should be optimised
away so will have no cost in optimised builds, but might help in -O0 builds
when debugging.

Reply via email to