/* PR tree-optimization/71109 */ /* { dg-require-effective-target non_strict_prototype } */ struct S { int g, h; signed char i; int j; signed char k; int l[4]; } a, c; struct T { signed char g; } e; int *b, d; static void foo (); void bar (void) { while (d) { int k; struct T f[3]; foo (bar, a); for (k = 0;; k++) f[k] = e; } } static inline void foo (int x, struct S y, struct T z) { for (z.g = 2; z.g; z.g--) { c = a = y; *b |= 6; if (y.g) break; } }