------- Additional Comments From mendola at bigfoot dot com 2005-04-13 06:07 ------- (In reply to comment #2) > (In reply to comment #1) > > The code is invalid: > > t.cc: In instantiation of ‘S& Test<S>::myS’: > > t.cc:32: instantiated from ‘static void Test<T>::out() [with T = S]’ > > t.cc:40: instantiated from here > > t.cc:49: error: cannot call member function ‘S& S::instance()’ without > > object > > > > > > This is fixed for 4.0.0. > > Declare that method as static, the code become valid but the compiler > still crash. > > > Regards > Gaetano Mendola
Just a follow up, if you move that two template initialization: template <class T> int Test<S>::myInt; template <class T> S& Test<S>::myS = S::instance(); from main.cpp to c.cpp then 3.4.3 have a link problems 4.0.0 crash: c.cpp:5: internal compiler error: in import_export_decl, at cp/decl2.c:1733 Regards Gaetano Mendola -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20980