[PATCH] ASTVector: Fix return value of various insert() methods

Will Dietz wdietz2 at illinois.edu
Mon Oct 28 15:11:47 PDT 2013


Error caught -fsanitize=pointer-overflow[1], curiously enough :).

The pointer overflow occurred when insert() was invoked with From==To,
which is done in quite a few places.  While std::vector::insert
requires [From,To) to be valid, it looks like here From==To is
intended to be supported[2], making the bug in the container not in
its use.

This patch fixes the overflow when From==To, as well as the return
value in this variant as well as the "fill" variant, changing them to
return an iterator pointing to the first of the inserted elements
(like SmallVector does).

See attached.

~Will

[1] Patches coming soon.
[2] See the implementation of append(), for example.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-ASTVector-Fix-return-value-of-various-insert-methods.patch
Type: text/x-patch
Size: 1972 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20131028/f979372a/attachment.bin>


More information about the cfe-commits mailing list