The following code makes g++ 3.4.4 and g++ 3.3.6 (Debian) crash on my system. Adding the missing default argument for arg1 fixes the crash template<typename F> void test(F function, bool arg0 = false, bool arg1) { } int main() { test(main); } Detailed G++ versions: g++-3.3 (GCC) 3.3.6 (Debian 1:3.3.6-3) Reading specs from /usr/lib/gcc-lib/powerpc-linux/3.3.6/specs Configured with: ../src/configure -v --enable-languages=c,c++,java,f77,pascal,objc,ada --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-gxx-include-dir=/usr/include/c++/3.3 --enable-shared --enable-__cxa_atexit --with-system-zlib --enable-nls --without-included-gettext --enable-clocale=gnu --enable-debug --enable-java-gc=boehm --enable-java-awt=xlib --enable-objc-gc --disable-multilib powerpc-linux Thread model: posix gcc version 3.3.6 (Debian 1:3.3.6-3) g++-3.4 (GCC) 3.4.4 20050314 (prerelease) (Debian 3.4.3-13) Reading specs from /usr/lib/gcc/powerpc-linux/3.4.4/specs Configured with: ../src/configure -v --enable-languages=c,c++,java,f77,pascal,objc,ada --prefix=/usr --libexecdir=/usr/lib --with-gxx-include-dir=/usr/include/c++/3.4 --enable-shared --with-system-zlib --enable-nls --without-included-gettext --program-suffix=-3.4 --enable-__cxa_atexit --enable-libstdcxx-allocator=mt --enable-clocale=gnu --enable-libstdcxx-debug --enable-java-gc=boehm --enable-java-awt=gtk --disable-multilib --disable-softfloat powerpc-linux Thread model: posix gcc version 3.4.4 20050314 (prerelease) (Debian 3.4.3-13)
-- Summary: ICE for template function if missing required default argument Product: gcc Version: 3.4.4 Status: UNCONFIRMED Severity: normal Priority: P2 Component: c++ AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: sylvain dot joyeux at m4x dot org CC: gcc-bugs at gcc dot gnu dot org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21467