// { dg-do run { target c++17 } }
struct derived;
struct base { };
struct derived : base {
  int i;
};
bool flag;
base f() {
  flag = true;
  return base();
}
derived d2{f(),1};
int main()
{
  return (!flag || d2.i != 1);
}
// { dg-do run { target c++17 } }
struct derived;
struct base { };
struct derived : base {
  int i;
};
bool flag;
base f() {
  flag = true;
  return base();
}
derived d2{f(),1};
int main()
{
  return (!flag || d2.i != 1);
}