http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46156
--- Comment #6 from Marc Glisse <marc.glisse at normalesup dot org> 2010-11-10 17:01:42 UTC --- template<typename> class vector { }; struct A{}; template <class T1> void complete_test(vector<T1> data1){ A drop=A(); } int main(){ vector<double> vect1; complete_test(vect1); } Fine with -std=c++98 but not with -std=c++0x: bug.cpp: In function ‘void complete_test(vector<T1>) [with T1 = double]’: bug.cpp:9:22: instantiated from here bug.cpp:5:11: internal compiler error: in tsubst_copy, at cp/pt.c:11677