https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77416
--- Comment #3 from Peter Bergner <bergner at gcc dot gnu.org> ---
Here's a creduce'd minimal version of the test case that shows the addz after
the function call. Same compiler options as above.
extern int fn2 ();
extern void fn3 ();
extern void fn4 (int);
int a, c, d, f, g, h, i, j, k, l, m, n;
struct
{
int escape;
} *b;
int e[8];
void
fn1 (int p1, int p2)
{
int o = a;
for (; f; f++)
{
int p;
if (e[h])
continue;
if (fn2 (o, d, l, n, p1, i, j, k, 0==0))
continue;
p = p2;
if (b[g].escape)
p++;
fn3 ("", c, m);
if (k)
fn4 (p);
}
}