[Bug libstdc++/56109] Add light-weight ABI-compatible debug checks to standard containers

2024-01-17 Thread redi at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=56109

--- Comment #6 from Jonathan Wakely  ---
Thanks, Paul.

[Bug libstdc++/56109] Add light-weight ABI-compatible debug checks to standard containers

2024-01-17 Thread ppluzhnikov at google dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=56109

Paul Pluzhnikov  changed:

   What|Removed |Added

 Resolution|--- |WONTFIX
 Status|NEW |RESOLVED

--- Comment #5 from Paul Pluzhnikov  ---
Already covered by PR 86843 and PR 56103.

[Bug libstdc++/56109] Add light-weight ABI-compatible debug checks to standard containers

2024-01-17 Thread redi at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=56109

Jonathan Wakely  changed:

   What|Removed |Added

   See Also||https://gcc.gnu.org/bugzill
   ||a/show_bug.cgi?id=86843,
   ||https://gcc.gnu.org/bugzill
   ||a/show_bug.cgi?id=56103

--- Comment #4 from Jonathan Wakely  ---
(In reply to Jonathan Wakely from comment #3)
> 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:
> 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.

But see PR 86843.

> 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.

That's PR 56103.

So is there any reason to keep this PR open? Are there still checks we should
copy from the google branch?

[Bug libstdc++/56109] Add light-weight ABI-compatible debug checks to standard containers

2020-09-02 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=56109

Jonathan Wakely  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  ---
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:
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.

[Bug libstdc++/56109] Add light-weight ABI-compatible debug checks to standard containers

2015-09-09 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=56109

--- Comment #2 from Jonathan Wakely  ---
As of r227595 trunk now supports a _GLIBCXX_ASSERTIONS macro that enables
lightweight checks. We will start merging some of the __google_stl checks to
trunk and enabling them with that macro (which might give you a number of merge
conflicts on your branch, sorry!)


[Bug libstdc++/56109] Add light-weight ABI-compatible debug checks to standard containers

2015-09-07 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=56109

Jonathan Wakely  changed:

   What|Removed |Added

 Status|NEW |ASSIGNED
   Assignee|unassigned at gcc dot gnu.org  |redi at gcc dot gnu.org


[Bug libstdc++/56109] Add light-weight ABI-compatible debug checks to standard containers

2014-10-13 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=56109

Jonathan Wakely redi at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2014-10-13
 Ever confirmed|0   |1

--- Comment #1 from Jonathan Wakely redi at gcc dot gnu.org ---
Confirmed.

c.f. https://gcc.gnu.org/ml/libstdc++/2014-06/msg00105.html