>>! In D4095#4, @mclow.lists wrote:
> What's the general motivation for these changes?

Honestly it's been so long since I sent this I've lost most of my context, but 
it was mostly motivated by bugs I found in SmallVector that, while not existent 
in libc++'s std::vector, weren't tested either.

> What errors do you expect these asserts to find?

This helps cover cases where container resizing is performed in an order that 
invalidates the to-be-added elements before they're inserted into the sequence. 
I don't know of any bugs in std::vector for this case, but I've seen 
SmallVector bugs (which I haven't got around to fixing) that this would catch.

Somewhat related to http://reviews.llvm.org/D4088 (similar test coverage, but 
in D4095 the tests were already there, it's just that the move-only type wasn't 
verifying certain behavior so it could've silently passed with the same sort of 
bugs)

I can go back & try to reproduce the particular valid cases that are buggy in 
SmallVector and non-buggy but untested in std::vector, if you'd like.

http://reviews.llvm.org/D4095



_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits

Reply via email to