/* { dg-do compile } */ /* { dg-options "-Os" } */ int a, b, c, d; struct S { int f0; }; static int fn1 (int p) { return p == 0 || a; } static int fn2 () { d = fn1 (c); return 0; } static int fn3 (struct S p) { p.f0 || fn2 (); if (fn1 (1)) b = 0; return 0; } int main () { struct S e = { 1 }; fn3 (e); return 0; }