[Bug c++/20980] internal compiler error on static member assignment

mendola at bigfoot dot com gcc-bugzilla@gcc.gnu.org
Wed Apr 13 06:07:00 GMT 2005


------- 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



More information about the Gcc-bugs mailing list