// PR c++/88181 // { dg-do compile } // { dg-options "-fpack-struct -g -std=c++11" } template struct A { typedef T B; }; template class C; template struct D { constexpr D (e) {} }; template struct E; template struct E : E<1, U...>, D { constexpr E (T x, U... y) : E<1, U...>(y...), D(x) {} }; template struct E : D { constexpr E (T x) : D(x) {} }; template struct C : E<0, T, U> { constexpr C (T x, U y) : E<0, T, U>(x, y) {} void operator= (typename A::B); }; struct F {}; struct G {}; int main () { F f; G g; constexpr C c(f, g); }