c++/2809: ice on illegal template specialisation
Peter Schmid
schmid@snake.iap.physik.tu-darmstadt.de
Sat May 12 14:46:00 GMT 2001
>Number: 2809
>Category: c++
>Synopsis: ice on illegal template specialisation
>Confidential: no
>Severity: serious
>Priority: medium
>Responsible: unassigned
>State: open
>Class: ice-on-illegal-code
>Submitter-Id: net
>Arrival-Date: Sat May 12 14:46:00 PDT 2001
>Closed-Date:
>Last-Modified:
>Originator: Peter Schmid
>Release: 3.0 20010503 (prerelease)
>Organization:
TU Darmstadt
>Environment:
System: Linux kiste 2.4.4 #38 Tue May 8 00:13:02 CEST 2001 i686 unknown
Architecture: i686
SuSE 7.1
glibc 2.2
GNU assembler version 2.11.90.0.4
host: i686-pc-linux-gnu
build: i686-pc-linux-gnu
target: i686-pc-linux-gnu
configured with: ../gcc/configure --enable-shared --disable-nls --enable-threads=posix --enable-long-long --enable-languages=c,c++,f77,objc
>Description:
The following illegal source code ts.C generates an internal compiler
error. If the template keyword is dropped in line 13 on the illegal
"template instantiation" the compilation does no longer crash.
>How-To-Repeat:
Source code ts.C
template <class T>
struct A
{
void f(T) {}
};
template<>
struct A<int>
{
void f(int) {}
};
template
void A<int>::f(int);
Compiling ts.C
g++ -v -c ts.C -W -Wall
Reading specs from /usr/local/lib/gcc-lib/i686-pc-linux-gnu/3.0/specs
Configured with: ../gcc/configure --enable-shared --disable-nls --enable-threads=posix --enable-long-long --enable-languages=c,c++,f77,objc : (reconfigured) ../gcc/configure --enable-shared --disable-nls --enable-threads=posix --enable-long-long --enable-languages=c,c++,f77,objc : (reconfigured)
Thread model: posix
gcc version 3.0 20010503 (prerelease)
/usr/local/lib/gcc-lib/i686-pc-linux-gnu/3.0/cc1plus -v -D__GNUC__=3 -D__GNUC_MINOR__=0 -D__GNUC_PATCHLEVEL__=0 -D__ELF__ -Dunix -Dlinux -D__ELF__ -D__unix__ -D__linux__ -D__unix -D__linux -Asystem=posix -D__STDC_HOSTED__=1 -W -Wall -Acpu=i386 -Amachine=i386 -Di386 -D__i386 -D__i386__ -D__tune_i686__ -D__tune_pentiumpro__ ts.C -D__GNUG__=3 -D_GNU_SOURCE -D__EXCEPTIONS -D__GXX_ABI_VERSION=100 -quiet -dumpbase ts.C -W -Wall -version -o /tmp/ccgvFFp1.s
GNU CPP version 3.0 20010503 (prerelease) (cpplib) (i386 Linux/ELF)
GNU C++ version 3.0 20010503 (prerelease) (i686-pc-linux-gnu)
compiled by GNU C version 3.0 20010503 (prerelease).
#include "..." search starts here:
#include <...> search starts here:
/usr/local/include/g++-v3
/usr/local/include/g++-v3/i686-pc-linux-gnu
/usr/local/include
/usr/local/lib/gcc-lib/i686-pc-linux-gnu/3.0/include
/usr/local/i686-pc-linux-gnu/include
/usr/include
End of search list.
ts.C:14: Internal error: Segmentation fault
Please submit a full bug report, with preprocessed source if appropriate.
See <URL: http://www.gnu.org/software/gcc/bugs.html > for instructions.
>Fix:
>Release-Note:
>Audit-Trail:
>Unformatted:
More information about the Gcc-bugs
mailing list