Compile the following code: template <typename X> class Foo { int i; public: Foo() { X::explode(); } }; class Bar { Foo<int> foo_; public: Bar() {} }; template class Foo<int>; and see that Foo<int>::Foo<int>() is not generated. It used to generate code under 3.2.3. This is from bug 11148 which I split up.
This is the correct testcase: template <typename X> class Foo { int i; public: Foo() { } }; class Bar { Foo<int> foo_; public: Bar() {} }; template class Foo<int>;
May be related to PR 10968 which Jason fixed yesterday. Will spin a new bootstrap and check soon.
Fixed indeed by Jason's patch of yesterday. *** This bug has been marked as a duplicate of 10968 ***