The following invalid code snippet causes an ICE since gcc 3.4.0: ====================================== template<int> struct A { ~A(){} }; template A<>::~A(); ======================================
The error message is: bug.cc:2: error: wrong number of template arguments (0, should be 1) bug.cc:1: error: provided for 'template<int <anonymous> > struct A' bug.cc:2: internal compiler error: tree check: expected class 'type', have 'exceptional' (error_mark) in constructor_name_full, at cp/name-lookup.c:1662 Please submit a full bug report, [etc.] -- Summary: [3.4/4.0 regression] ICE in invalid explicit instantiation of a destructor Product: gcc Version: 4.0.0 Status: UNCONFIRMED Keywords: ice-on-invalid-code, error-recovery Severity: normal Priority: P2 Component: c++ AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: reichelt at gcc dot gnu dot org CC: gcc-bugs at gcc dot gnu dot org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=19762