https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94881
--- Comment #2 from Arnd Bergmann <arnd at linaro dot org> --- I ran into another file that triggered this problem, reducing that one gave me a slightly simpler test case: struct a { char b[8]; }; struct e { unsigned c; struct a d[2]; }; void i(struct e *e, void *g) { struct e *f = e + 1; __builtin_memcpy(f->d[f->c].b, g, 1); }