1 // PR c++/66450
2 // { dg-do compile { target c++11 } }
3 
4 struct foo {
5   constexpr foo(int a);
foofoo6   constexpr foo(int a, int b, int c): a{a}, b{b}, c{c} {}
7 
8   int a, b, c;
9 };
10 
make_foo(int a)11 constexpr foo make_foo(int a) { return foo{a, a+1, a+2}; }
foo(int a)12 constexpr foo::foo(int a): foo{make_foo(a)} {}
13 
main()14 int main() {
15   constexpr const foo f{3};
16   static_assert(f.a == 3, "");
17   static_assert(f.b == 4, "");
18   static_assert(f.c == 5, "");
19 }
20