On Wed, 2020-01-08 at 17:23 +0000, Martin Sebor wrote:
> A recent improvement to the vectorizer (r278334 if my bisection
> is right) can transform multiple stores to adjacent struct members
> into single vectorized assignments that write over all the members
> in a single MEM_REF.  These are then flagged by -Wstringop-overflow
> thanks to its also recently enhanced past-the-end store detection.
> The warnings have been causing failures in some of Jeff's periodic
> builds (e.g., in cjdns-v20.4).
> 
> Reliably distinguishing these transformed, multi-member, MEM_REF
> stores from accidental bugs the warning is designed to detect will
> require annotating them somehow at the time they are introduced.
> Until that happens, the attached patch simply tweaks the logic that
> determines the size of the destination objects to punt on these
> vectorized MEM_REFs.
I thought we had other code which could combine stores into consecutive
memory locations that might run afoul of this warning as well.  But I
can't seem to find that code -- we may well have throttled it a while
back because of data store races.

OK.  Thanks for taking care of this so quickly.

jeff


Reply via email to