The following testcase produces a segmentation fault in --std=c++0x mode (in 4.3, 4.4, 4.5):
----- 8< ----- template < typename > struct A ; template < typename X, template < typename > class = A > void test ( X ) { A < int > T ; test ( T ) ; } ----- >8 ----- ===== 4.3.4 -std=c++0x ===== $ x86_64-linux-gnu-g++-4.3.x -v -std=c++0x -c segfault.min.ii Using built-in specs. Target: x86_64-unknown-linux-gnu Configured with: ../gcc-4_3-branch/configure --prefix=/opt/software/gcc-x86_64/gcc-4.3.x --program-suffix=-4.3.x --enable-languages=c,c++ --enable-checking Thread model: posix gcc version 4.3.4 20090413 (prerelease) (GCC) COLLECT_GCC_OPTIONS='-v' '-std=c++0x' '-c' '-shared-libgcc' '-mtune=generic' /opt/software/gcc-x86_64/gcc-4.3.x/libexec/gcc/x86_64-unknown-linux-gnu/4.3.4/cc1plus -fpreprocessed segfault.min.ii -quiet -dumpbase segfault.min.ii -mtune=generic -auxbase segfault.min -std=c++0x -version -o /tmp/cccslkh4.s GNU C++ (GCC) version 4.3.4 20090413 (prerelease) (x86_64-unknown-linux-gnu) compiled by GNU C version 4.3.4 20090413 (prerelease), GMP version 4.2.2, MPFR version 2.3.1. GGC heuristics: --param ggc-min-expand=30 --param ggc-min-heapsize=4096 Compiler executable checksum: 922fef518d0100daafe6c2059a02f6bf segfault.min.ii: In function 'void test(X)': segfault.min.ii:2: internal compiler error: Segmentation fault ===== ===== ===== 4.3.4 ===== $ x86_64-linux-gnu-g++-4.3.x -c segfault.min.ii segfault.min.ii:4: error: default template arguments may not be used in function templates segfault.min.ii: In function 'void test(X)': segfault.min.ii:7: error: no matching function for call to 'test(A<int>&)' ========== -- Summary: ICE: Segmentation fault -- with function template default template arguments in c++0x mode Product: gcc Version: 4.3.4 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: gcc at abeckmann dot de http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39822