When compiling the following code:
-----------------<test.cc>-------------------
// Trigger ICE with invalid input.
// Wolfgang Wieser 03/2005.
int foo(some_type x); // some_type is unknown here by purpose.
template<typename T>int foo(T x) {}
--------------------------------------------
...gcc will crash with the following output:
--------------------------------------------
test.cc:4: error: 'some_type' was not declared in this scope
test.cc:5: error: 'template<class T> int foo(T)' redeclared as different kind
of symbol
test.cc:4: error: previous declaration of 'int foo'
Internal compiler error: Error reporting routines re-entered.
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:http://gcc.gnu.org/bugs.html> for instructions.
--------------------------------------------
Obviously the code is invalid because "some_type" has not been declared.
Versions checked by me:
4.0.0: 20050219 (exp.): ICE
4.1.0: 20050312 (exp.): ICE
3.4.x: work correctly
--
Summary: ICE on invalid C++ code
Product: gcc
Version: 4.1.0
Status: UNCONFIRMED
Severity: minor
Priority: P2
Component: c++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: wwieser at gmx dot de
CC: gcc-bugs at gcc dot gnu dot org
GCC build triplet: i686-linux-gnu
GCC host triplet: i686-linux-gnu
GCC target triplet: i686-linux-gnu
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20443