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.