[Bug c++/14379] ICE in tsubst with declaring then defining a member template

reichelt at gcc dot gnu dot org gcc-bugzilla@gcc.gnu.org
Fri Oct 8 13:05:00 GMT 2004


------- Additional Comments From reichelt at gcc dot gnu dot org  2004-10-08 13:05 -------
I've got good news and bad news.

The good news is that the original testcase compiles.

This is most probably due to Mark's patch
http://gcc.gnu.org/ml/gcc-patches/2004-10/msg00645.html
http://gcc.gnu.org/ml/gcc-cvs/2004-10/msg00316.html

The bad news is that we now accept the following invalid code:

============================================================================
template <int N> struct X { 
    template <typename T> void f(T); 
}; 
 
template <> template <typename T> void X<1>::f (T); 
template <> template <typename T> void X<1>::f (T) {} 
template <> template <typename T> void X<1>::f (T) {} // duplicate definition
 
template void X<1>::f(int);
============================================================================

Mark, could you please have a look?


-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |mark at codesourcery dot com
           Keywords|                            |accepts-invalid
      Known to fail|3.3.4 3.4.0 4.0             |3.3.4 3.4.0 4.0.0


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=14379



More information about the Gcc-bugs mailing list