This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [patch][google/integration] Add lightweight checks to vector::begin et. al. (issue4973065)
On Tue, Sep 6, 2011 at 10:46 AM, Diego Novillo <dnovillo@google.com> wrote:
> On Tue, Sep 6, 2011 at 12:54, Paul Pluzhnikov <ppluzhnikov@google.com> wrote:
>> On Tue, Sep 6, 2011 at 9:44 AM, Diego Novillo <dnovillo@google.com> wrote:
>>
>>> OK. ?Any reason not to send this (or a variant) to mainline?
>>
>> AFAIU, mainline is not interested -- there is already a debug mode (enabled
>> by _GLIBCXX_DEBUG), which catches many of the same bugs (and more), and
>> introduction of "parallel" debug modes is undesirable.
>>
>> Unfortunately, _GLIBCXX_DEBUG makes no performance guarantees (making some
>> normally constant-time operations O(N), etc.) and so we can't just turn
>> it on in Google.
>
> Right. ?That's why I thought of a variant. ?Maybe we want to have
> levels of checking, or a _GLBICXX_DEBUG_FAST.
Which would introduce a "parallel" debug mode ... which has been rejected
in the past.
> But this is something to discuss with libstdc++ (CC'd).
Sure. If the "parallel" debug mode is more tenable now, I am all for it.
To give some context, in a large code base (> 1e6 lines of C++ code),
the checks added in this patch found 20 bugs.
Most (though not all) of these bugs could also have been found with Valgrind
and (probably) with _GLIBCXX_DEBUG, but the runtime cost of running such
heavy-weight checks over the entire code base is prohibitive.
Thanks,
--
Paul Pluzhnikov