1 // { dg-do run }
2 // { dg-options "-O" }
3 
4 struct Foo
5 {
FooFoo6   Foo() : a(1), b(1), c('a') {}
7   int a;
8   int b;
9   char c;
10 };
11 
12 static Foo copy_foo(Foo) __attribute__((noinline, noclone));
13 
copy_foo(Foo A)14 static Foo copy_foo(Foo A)
15 {
16   return A;
17 }
18 
19 struct Bar : Foo
20 {
BarBar21   Bar(Foo t) : Foo(copy_foo(t)) {}
22 };
23 
24 Foo F;
25 
main(void)26 int main (void)
27 {
28   Bar B (F);
29 
30   if (B.a != 1 || B.b != 1 || B.c != 'a')
31     __builtin_abort ();
32 
33   return 0;
34 }
35