// Testcase from P0136 // { dg-do compile { target c++11 } } // { dg-options -fnew-inheriting-ctors } struct A { template A(T, typename T::type = 0); A(int); }; struct B : A { using A::A; B(int); }; B b(42L); // now calls B(int), used to call B(long), // which called A(int) due to substitution failure // in A(long). // { dg-final { scan-assembler "_ZN1BC1Ei" } }