(root)/
gcc-13.2.0/
gcc/
testsuite/
g++.target/
i386/
pr109676.C
// PR debug/109676
// { dg-do compile { target c++11 } }
// { dg-options "-O2 -g -march=alderlake" }

template <class T>
struct A {
  T a;
  char b;
  template <typename U>
  A (U x, int) : a{x} {}
  A (...);
  T foo () { return a; }
};
bool bar ();
struct B { int c, d; unsigned char e[8]; };
bool baz ();
struct C { C () : f () {} B &boo () { return f; } B f; };

A<B>
qux ()
{
  {
    A<B> p;
    bool t = true;
    for (; bar ();)
      if (baz ())
	{
	  t = false;
	  break;
	}
    if (t)
      p.b = false;
    return p;
  }
}

A<C>
garply ()
{
  C g;
  A<B> h = qux ();
  if (!h.b)
    return 0;
  g.boo () = h.foo ();
  return A<C>{g, 0};
}