This is the mail archive of the
libstdc++@gcc.gnu.org
mailing list for the libstdc++ project.
Re: [Bug libstdc++/62313] Data race in debug iterators
- From: François Dumont <frs dot dumont at gmail dot com>
- To: Jonathan Wakely <jwakely at redhat dot com>
- Cc: "libstdc++ at gcc dot gnu dot org" <libstdc++ at gcc dot gnu dot org>, gcc-patches <gcc-patches at gcc dot gnu dot org>
- Date: Tue, 30 Sep 2014 22:18:24 +0200
- Subject: Re: [Bug libstdc++/62313] Data race in debug iterators
- Authentication-results: sourceware.org; auth=none
- References: <bug-62313-19885 at http dot gcc dot gnu dot org/bugzilla/> <bug-62313-19885-GBoNocJyMm at http dot gcc dot gnu dot org/bugzilla/> <5410BAB5 dot 90803 at gmail dot com> <20140921220411 dot GD22778 at redhat dot com> <5421DB37 dot 8080307 at gmail dot com> <54249096 dot 5020408 at gmail dot com> <20140926100510 dot GJ2669 at redhat dot com> <20140930153241 dot GK4197 at redhat dot com>
Hi
I prefer to submit this patch to you cause I am not very
comfortable with Python stuff.
I simply rely on Python cast feature. It doesn't really matter but
is it going to simply consider the debug iterator as a normal one or is
it going through the C++ explicit cast operator on debug iterators ?
François
On 30/09/2014 17:32, Jonathan Wakely wrote:
On 26/09/14 11:05 +0100, Jonathan Wakely wrote:
On 26/09/14 00:00 +0200, François Dumont wrote:
Apart from those minor adjustments I think this looks good, but I'd
like to know that it has been tested with -fsanitize=thread, even if
only lightly tested.
Hi
Dmitry, who reported the bug, confirmed the fix. Can I go ahead
and commit ?
Yes, OK.
This caused some failures in the printer tests:
Running
/home/jwakely/src/gcc/gcc/libstdc++-v3/testsuite/libstdc++-prettyprinters/prettyprinters.exp
...
FAIL: libstdc++-prettyprinters/debug.cc print deqiter
FAIL: libstdc++-prettyprinters/debug.cc print lstiter
FAIL: libstdc++-prettyprinters/debug.cc print lstciter
FAIL: libstdc++-prettyprinters/debug.cc print mpiter
FAIL: libstdc++-prettyprinters/debug.cc print spciter
Index: python/libstdcxx/v6/printers.py
===================================================================
--- python/libstdcxx/v6/printers.py (revision 215741)
+++ python/libstdcxx/v6/printers.py (working copy)
@@ -460,7 +460,7 @@
# and return the wrapped iterator value.
def to_string (self):
itype = self.val.type.template_argument(0)
- return self.val['_M_current'].cast(itype)
+ return self.val.cast(itype)
class StdMapPrinter:
"Print a std::map or std::multimap"