gcc-4.3-20070727 fails with ICE on code: ----------------------------------- template<class A> struct a { template<class B> struct b { template<class C> void f() { struct g { ~g() {}//<--here }; } }; }; ----------------------------------- Compiler output is: ----------------------------------- G++ -v -save-temps gcc-err.cpp Using built-in specs. Target: i686-pc-mingw32 Configured with: ../gcc-4.3-20070727/configure --disable-bootstrap --enable-languages=c,c++ --with-gcc --with-gnu-ld --with-gnu-as --with-dwarf2 --without-stabs --disable-sjlj-exceptions --prefix=/mingw --libexecdir=/mingw/lib --disable-werror --enable-threads --disable-nls --disable-win32-registry --disable-shared --disable-libssp --disable-libstdcxx-debug --disable-concept-checks Thread model: win32 gcc version 4.3.0 20070727 (experimental) d:/TOOLS/GCC/lib/gcc/i686-pc-mingw32/4.3.0/cc1plus.exe -E -quiet -v -iprefix d:\tools\gcc\bin\../lib/gcc/i686-pc-mingw32/4.3.0/ gcc-err.cpp -mtune=generic -fpch-preprocess -o gcc-err.ii #include "..." search starts here: #include <...> search starts here: d:\TOOLS\GCC/include d:\TOOLS\GCC/local/include d:\TOOLS\GCC/win32api/include d:/prj/libs/include d:/prj/libs/boost d:\tools\gcc\bin\../lib/gcc/i686-pc-mingw32/4.3.0/include d:\tools\gcc\bin\../lib/gcc/i686-pc-mingw32/4.3.0/include-fixed d:/TOOLS/GCC/include/c++/4.3.0 d:/TOOLS/GCC/include/c++/4.3.0/i686-pc-mingw32 d:/TOOLS/GCC/include/c++/4.3.0/backward d:/TOOLS/GCC/include d:/TOOLS/GCC/include d:/TOOLS/GCC/lib/gcc/i686-pc-mingw32/4.3.0/include d:/TOOLS/GCC/lib/gcc/i686-pc-mingw32/4.3.0/include-fixed d:/TOOLS/GCC/lib/gcc/i686-pc-mingw32/4.3.0/include-fixed d:/TOOLS/GCC/include End of search list. d:/TOOLS/GCC/lib/gcc/i686-pc-mingw32/4.3.0/cc1plus.exe -fpreprocessed gcc-err.ii -quiet -dumpbase gcc-err.cpp -mtune=generic -auxbase gcc-err -version -o gcc-err.s GNU C++ version 4.3.0 20070727 (experimental) (i686-pc-mingw32) compiled by GNU C version 4.2.0, GMP version 4.2.1, MPFR version 2.2.0. GGC heuristics: --param ggc-min-expand=30 --param ggc-min-heapsize=4096 Compiler executable checksum: b6f7d618f50d2b0792a732058b53d781 gcc-err.cpp: In member function 'void a<A>::b<B>::f()': gcc-err.cpp:10: internal compiler error: tree check: expected class 'type', have 'declaration' (function_decl) in push_template_decl_real, at cp/pt.c:3917 Please submit a full bug report, with preprocessed source if appropriate. See <URL:http://gcc.gnu.org/bugs.html> for instructions. ----------------------------------- 3.4.2, 4.1.1 and 4.2.0 compile it well.
-- Summary: ICE on local class destructor. Regression? Product: gcc Version: 4.3.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: vasili dot burdo at gmail dot com GCC build triplet: i686-pc-mingw32 GCC host triplet: i686-pc-mingw32 GCC target triplet: i686-pc-mingw32 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33035