On 30/01/16 18:36, David Blaikie wrote:
On Sat, Jan 30, 2016 at 9:00 AM, Vassil Vassilev
<v.g.vassi...@gmail.com <mailto:v.g.vassi...@gmail.com>> wrote:
AFAICT the making a test case independent on STL is the hard part.
I think it will be always failing due to the relocation of the
memory region of the underlying SmallVector.
Sorry, I think I didn't explain myself well. What I mean is - due to
the instability of test cases for UB (especially library UB), we don't
usually commit test cases for them - we just fix them without tests.
About the only time I think committing a test is helpful for UB
(especially library UB) is if we have a reliable way to test/catch the
UB (eg: the sanitizers or a checking STL that fails fast on validation
violations). So, while it would be good to provide/demonstrate your
test case, I would not commit the test case unless it's a minimal
reproduction in the presence of one of those tools (sanitizers or
checking STL) - and would just commit the fix without a test case,
usually.
(I'm not actually reviewing this patch - I don't know much about the
modules code, but just providing a bit of context and first-pass-review)
Got it. Thanks!
--Vassil
On 30/01/16 17:37, David Blaikie wrote:
Yeah, it's good to have a reproduction, but I wouldn't actually
commit one - unless you have a checked stl to test against that
always fails on possibly-invalidating sequences of operations,
then you'd have a fairly simple reproduction
On Jan 30, 2016 8:23 AM, "Vassil Vassilev"
<v.g.vassi...@gmail.com <mailto:v.g.vassi...@gmail.com>> wrote:
Sorry.
Our module builds choke on merging several modules,
containing declarations from STL (we are using libc++, no
modulemaps).
When writing a new module containing the definition of a STL
reverse_iterator, it collects all its template
specializations. Some of the specializations need to be
deserialized from a third module. This triggers an iterator
invalidation bug because of the deserialization happening
when iterating the specializations container itself. This
happens only when the container's capacity is exceeded and
the relocation invalidates the iterators and at best causes a
crash (see valgrind reports in the bug report). Unfortunately
I haven't been able to make the reproducer independent on STL.
--Vassil
On 30/01/16 17:08, David Blaikie wrote:
It might be handy to give an overview of the issue in the
review (& certainly in the commit) message rather than only
citing the bug number
On Jan 30, 2016 6:49 AM, "Vassil Vassilev via cfe-commits"
<cfe-commits@lists.llvm.org
<mailto:cfe-commits@lists.llvm.org>> wrote:
Attaching a fix to
https://llvm.org/bugs/show_bug.cgi?id=26237
Please review.
Many thanks!
--Vassil
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
<mailto:cfe-commits@lists.llvm.org>
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits