1  /* { dg-lto-do link } */
       2  /* { dg-lto-options {{-Os -flto} } } */
       3  
       4  
       5  struct S
       6  {
       7    int f1;
       8    int f2;
       9  } a[1] = { {0, 0} }; 
      10  
      11  int b, c;
      12  
      13  static unsigned short fn1 (struct S);
      14  
      15  void
      16  fn2 ()
      17  {
      18    for (; c;)
      19      ;
      20    b = 0;
      21    fn1 (a[0]);
      22  }
      23  
      24  unsigned short
      25  fn1 (struct S p)
      26  {
      27    if (p.f1)
      28      fn2 ();
      29    return 0;
      30  }
      31  
      32  int
      33  main ()
      34  {
      35    fn2 ();
      36    return 0;
      37  }