https://gcc.gnu.org/bugzilla/show_bug.cgi?id=122793
Kacper Michajłow <kasper93 at gmail dot com> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |kasper93 at gmail dot com
--- Comment #5 from Kacper Michajłow <kasper93 at gmail dot com> ---
Smaller reproducer, in case it would be useful.
```
static void foo(unsigned char *dst, unsigned char *src,
int dstStride, int srcStride) {
for (int i = 0; i < 4; i++) {
dst[0] = src[-2];
dst[5] = (src[5] + src[6]) * 2 - (src[4] + src[7]) * 5 + src[3] + src[8];
dst[6] = (src[6] + src[7]) * 2 - (src[5] + src[8]) * 5 + src[4] + src[9];
dst[7] = (src[7] + src[8]) * 2 - (src[6] + src[9]) * 5 + src[5] + src[0];
dst += dstStride;
src += srcStride;
}
}
unsigned char src[128] = {2};
unsigned char dst[128];
int main() {
foo(dst, src + 2, 16, 16);
if (dst[5] != 0)
__builtin_abort();
}
```