[Bug c++/12403] New: ICE on member function template specialization

stefaandr at hotmail dot com gcc-bugzilla@gcc.gnu.org
Thu Sep 25 16:26:00 GMT 2003


PLEASE REPLY TO gcc-bugzilla@gcc.gnu.org ONLY, *NOT* gcc-bugs@gcc.gnu.org.

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

           Summary: ICE on member function template specialization
           Product: gcc
           Version: 3.4
            Status: UNCONFIRMED
          Severity: normal
          Priority: P2
         Component: c++
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: stefaandr at hotmail dot com
                CC: gcc-bugs at gcc dot gnu dot org
 GCC build triplet: i686-pc-linux-gnu
  GCC host triplet: i686-pc-linux-gnu
GCC target triplet: i686-pc-linux-gnu

compiling this code (extracted from bug report 1908): 
struct foo { 
        template<typename T> void bar (T &t) {}; 
        template<> void bar<double>(double &t) {}; 
} 
I get an internal compiler error (suppose it's valid code, but I'm not sure). 
 
Reading specs from /esat/firenze/install/lib/gcc/i686-pc-linux-gnu/3.4/specs 
Configured with: ../../src/gcc/3.4/configure --prefix=/esat/firenze/install 
--program-suffix=-3.4 --enable-languages=c,c++ : (reconfigured) 
Thread model: posix 
gcc version 3.4 20030925 (experimental) 
 /esat/firenze/install/libexec/gcc/i686-pc-linux-gnu/3.4/cc1plus -quiet -v 
-D_GNU_SOURCE test102.cpp -quiet -dumpbase test102.cpp -mtune=pentiumpro 
-auxbase test102 -version -o /tmp/ccrvcurt.s 
ignoring nonexistent directory "/esat/firenze/install/lib/gcc/i686-pc-linux-gnu/3.4/../../../../
i686-pc-linux-gnu/include" 
#include "..." search starts here: 
#include <...> search starts here: 
 /esat/firenze/install/lib/gcc/i686-pc-linux-gnu/3.4/../../../../include/c++/3.4 
 /esat/firenze/install/lib/gcc/i686-pc-linux-gnu/3.4/../../../../include/c++/3.4/
i686-pc-linux-gnu 
 /esat/firenze/install/lib/gcc/i686-pc-linux-gnu/3.4/../../../../include/c++/3.4/backward 
 /usr/local/include 
 /esat/firenze/install/include 
 /esat/firenze/install/lib/gcc/i686-pc-linux-gnu/3.4/include 
 /usr/include 
End of search list. 
GNU C++ version 3.4 20030925 (experimental) (i686-pc-linux-gnu) 
        compiled by GNU C version 3.3.1. 
GGC heuristics: --param ggc-min-expand=30 --param ggc-min-heapsize=4096 
test102.cpp:3: error: invalid explicit specialization 
test102.cpp:3: error: template-id `bar<double>' in declaration of primary template 
test102.cpp:3: internal compiler error: tree check: accessed elt 1 of tree_vec with 0 
elts in push_template_decl_real, at cp/pt.c:2806 
Please submit a full bug report, 
with preprocessed source if appropriate. 
See <URL:http://gcc.gnu.org/bugs.html> for instructions.



More information about the Gcc-bugs mailing list