c++/95: No implicit instantiation of static data member templates on HPUX

Wolfgang Bangerth bangerth@ticam.utexas.edu
Tue Oct 22 16:04:00 GMT 2002


c++/95 is about the following:
-----------------------------------------
template <class T> class X {    static int *i;   };
class Y {};
int *X<Y>::i; // = 0;
-----------------------------------------

With gcc2.95, this puts the static variable into different segments, 
depending on whether we have the initialization I commented out, or not. 
On Linux, I get either
00000004 C _t1X1Z1Y.i      # without initialization
00000000 D _t1X1Z1Y.i      # with initialization

This difference has gone with present CVS and 3.2. I always get
00000000 B _ZN1XI1YE1iE

Jeff, this report is against HPUX which I cannot test, but you are the 
maintainer of this port. Can you test the above test case with/without the 
initializer, and if you the symbol is defined in both cases, can you 
please close this report?

Thanks
  Wolfgang

-------------------------------------------------------------------------
Wolfgang Bangerth              email:           bangerth@ticam.utexas.edu
                               www: http://www.ticam.utexas.edu/~bangerth





More information about the Gcc-bugs mailing list