https://gcc.gnu.org/bugzilla/show_bug.cgi?id=97615
--- Comment #2 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
And slightly simplified; still ICEs with -O3:
short *a;
int e, f;
void
foo (int c, int d)
{
short *a1, *a2, *a3;
a1 = a++;
*a1 = c;
a2 = a++;
*a2 = *a1;
a3 = a++;
*a3 = d;
}
void
bar (void)
{
foo (e + f - 2, e + f - 1);
foo (e + f - 1, 0);
}
