/* { dg-do compile } */ /* { dg-options "-O1 -fipa-sra" } */ typedef struct { int a; } b; typedef struct { double c; double a; } d; typedef struct { d e; d f; } g; g h; b i, m; int j, k, l, n, o; static b q(d s) { int r = s.c ?: 0; if (r) if (j) l = j - 2; o = k; n = l; i = m; return m; } static void t(g s) { { d p = s.e; int r = p.c ?: 0; if (r) { l = j - 2; } } b f = q(s.f); } void main() { t(h); }