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